这篇文章主要讲解了“Java lambda表达式与泛型怎么应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java lambda表达式与泛型怎么应用”吧!
成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的景德镇网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
class 类名 <泛型标识,泛型标识,…>{ private 泛型标识1,变量名;常用的泛型标识:T,E,K,V } 里面正常写法
public class GenericDemo{ //定义数组 private K[] arr; }
类名<具体的数据> 对象名 = new 类名<具体的数据类型>()
jdk1.7之后,后边的<>可以省略不写
类名<具体的数据> 对象名 = new 类名<>()
类型参数化,让类的定义更加通用
泛型不支持基本类型,因为在编译时,基本类型无法转换成Object
泛型类在创建对象的时候,如果没有指定数据类型,将按照Object类型来操作
同一泛型类在逻辑上可以看成是多个不同的类型,但实际是相同的类型
子类也是泛型,子类和父类的泛型要一致 (例如:连泛型的类型T要一致,写的内容相同),
如果父类没有指明类型,则父类要按照Object类型处理
public class Childextends Parent { }
子类不是泛型,父类要明确泛型类型,
如果父类没有指明类型,则父类要按照Object类型处理
泛型接口的语法定义:interface 接口名<泛型标识1,泛型标识2,…>{ 泛型标识 方法名(); … }
实现类也是泛型,实现类和接口的泛型要一致,如果接口没有指明类型,则接口要按照Object类型处理
实现类不是泛型,接口要明确泛型接口的数据类型,如果接口没有指明类型,则接口按照Object类型处理
面向对象的编程中强调,必须通过对象的形式去做事情;函数思想则是尽量忽略对象的复杂写法,“强调做什么,而不是以什么形式去做”
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("多线程就绪"); } }
感谢各位的阅读,以上就是“Java lambda表达式与泛型怎么应用”的内容了,经过本文的学习后,相信大家对Java lambda表达式与泛型怎么应用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!