Java lambda表达式与泛型整理总结
作者:·~简单就好 发布时间:2021-07-15 19:57:14
泛型
泛型的语法定义
class 类名 <泛型标识,泛型标识,…>{ private 泛型标识1,变量名;常用的泛型标识:T,E,K,V } 里面正常写法
public class GenericDemo<K> {
//定义数组
private K[] arr;
}
泛型的使用语法
类名<具体的数据> 对象名 = new 类名<具体的数据类型>()
jdk1.7之后,后边的<>可以省略不写
类名<具体的数据> 对象名 = new 类名<>()
泛型总结
类型参数化,让类的定义更加通用
泛型不支持基本类型,因为在编译时,基本类型无法转换成Object
泛型类在创建对象的时候,如果没有指定数据类型,将按照Object类型来操作
同一泛型类在逻辑上可以看成是多个不同的类型,但实际是相同的类型
从泛型类派生子类
子类也是泛型,子类和父类的泛型要一致 (例如:连泛型的类型T要一致,写的内容相同),
如果父类没有指明类型,则父类要按照Object类型处理
public class Child<T> extends Parent<T> {
}
子类不是泛型,父类要明确泛型类型,
如果父类没有指明类型,则父类要按照Object类型处理
泛型接口
泛型接口的语法定义:interface 接口名<泛型标识1,泛型标识2,…>{ 泛型标识 方法名(); … }
实现类也是泛型,实现类和接口的泛型要一致,如果接口没有指明类型,则接口要按照Object类型处理
实现类不是泛型,接口要明确泛型接口的数据类型,如果接口没有指明类型,则接口按照Object类型处理
lambda表达式
lambda表达式概念
面向对象的编程中强调,必须通过对象的形式去做事情;函数思想则是尽量忽略对象的复杂写法,“强调做什么,而不是以什么形式去做”
lambda表达式就是函数思想的体现
lambda表达式就是定义函数式的简化写法,而不是函数调用的简化写法
lambda表达式格式
三要素:形式参数,箭头,代码块
形如:(形参)->代码块
形参如果多个参数,参数之间逗号隔开,如果没有参数,留空括号,不用留空格
-> 一定的是英文,固定写法,表示执行
代码块:具体要做的事情
使用前提:使用接口:接口当中有且只有一个抽象方法
代码示例:
package com.lambda;
public class Lambda {
public static void main(String[] args) {
//正常写法
Mythread mythread = new Mythread();
Thread t = new Thread(mythread);
t.start();
//匿名内部类
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("多线程1就绪了");
}
}).start();
//lambda表达式:创建线程
new Thread(()->{
System.out.println("多线程2就绪了");
}).start();
}
}
class Mythread implements Runnable{
@Override
public void run() {
System.out.println("多线程就绪");
}
}
来源:https://blog.csdn.net/qq_45830276/article/details/125144104


猜你喜欢
- 本文实例讲述了Android播放assets文件里视频文件相关问题。分享给大家供大家参考,具体如下:今天做了一个功能,就是播放项目工程里面的
- 最近一直在写c#的时候一直遇到这个报错,看的我心烦。。。准备记下来以备后续只需。参考博客:https://segmentfault.com/
- 一、使用无参构造方法创建二、使用静态工厂创建三、使用实例工厂创建来源:https://www.cnblogs.com/jock766/p/1
- 前言:现在一般的Android软件都是需要不断更新的,当你打开某个app的时候,如果有新的版本,它会提示你有新版本需要更新。该项目实现的就是
- 本文实例为大家分享了java根据网络地址保存图片的具体代码,供大家参考,具体内容如下import java.io.BufferedInput
- JDK * :利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。CGlib * :利用AS
- 不知不觉这个春节也已经过完了,遗憾家里没网,没能及时给大家送上祝福,今天回到深圳,明天就要上班了,小伙伴们是不是和我一样呢?今天讲的是一个大
- 一般查询手机归属地内容应该很好用json格式保存,在网上找到了淘宝的归属地API,并下了处理json相关的jar包,做了这个手机归属地查询功
- 从这章开始,会介绍几个常用的函数式接口工具,首先先来看下这个大家族:首先从Function接口开始介绍一. 概述该接口顾名思义,函数的意思,
- Java 分割字符串java.lang.String 的 split() 方法, JDK 1.4 or laterpublic
- 本文实例为大家分享了android点击按钮切换不同布局的具体代码,供大家参考,具体内容如下先上效果图:如图所示,实现点击下面的按钮切换不同的
- 通过子类调用父类的变量,有两种方法:1、把父类的变量设置成public:package triangle.opengl.wlz.stu.ch
- 参考了一下网上别人写的,再使用的时候是放在新开的线程中来播放音乐的,后来发现每次进入Activity后就会重复开始一个音乐播放的声音。为了避
- RPC是远程过程调用的简称,广泛应用在大规模分布式应用中,作用是有助于系统的垂直拆分,使系统更易拓展。Java中的RPC框架比较多,各有特色
- 讲完了inbound事件和outbound事件的传输流程, 这一小节剖析异常事件的传输流程传播异常事件简单的异常处理的场景@Override
- 在使用spring框架中我们都知道,某个类如果使用了@Service、@Autowire 这种依赖注入的方式引用了其他对象,在另外一个类中,
- 前言大家都知道在Java中,除了8种基本数据类型外,其他的都是引用类型。使用引用类型是为了更好地贯彻面向对象的思想,那为什么还要保留8种基本
- Android应用强制更新的用途十分广泛,特别上刚上线的应用肯定会存在或多或少的bug,特别是涉及移动支付这一块的内容,如果出错了会造成比较
- C# 关于Invoke首先说下,invoke和begininvoke的使用有两种情况:control中的invoke、begininvoke
- 概述memcache是一套开放源的分布式高速缓存系统。由服务端和客户端组成,以守护程序(监听)方式运行于一个或多个服务器中,随时会接收客户端