当前位置: 首页 / 技术干货 / 正文
民哥带你快速精通java泛型(六)

2022-10-25

钻石 操作符 public content

  第六关 泛型和钻石的“神秘关系”

  小伙伴看到钻石是不是特别嗨,学泛型还有钻石呢?非也!在这里这个钻石指的是一种符号,我们开发者又称之为钻石操作符

好程序员

  1. 钻石操作符介绍

  钻石操作符是在 java 7 中引入的,钻石操作符其实就是 < > ,可以在里面定义泛型,让代码更易读,但它不能用于匿名的内部类。

  如下所示:

List<Integer> list = new ArrayList<>();// <> 钻石操作符,java 7 以后可以使用
//在java7中: 如果使用匿名内部类,<> 钻石操作符不能直接使用
public class GenericDemo {
public static void main(String[] args) {
Operation<Integer> intOperation = new Operation<Integer>(1) {
@Override
public void handle() {
System.out.println(content);
}
};
intOperation.handle();
}
}
//定义一个抽象类:用来创建匿名内部类
abstract class Operation<T> {
public T content;
public Operation(T content) {
this.content = content;
}
abstract void handle();
}

  2.钻石操作符之JDK9新特性

  钻石操作符是在 java 7 中引入的,但它不能用于匿名的内部类。 在java 9中可以直接使用

  如下所示:

//在java9中: 如果使用匿名内部类,<> 钻石操作符也可以直接使用
public class GenericDemo {
public static void main(String[] args) {
Operation<Integer> intOperation = new Operation<Integer>(1) {
@Override
public void handle() {
System.out.println(content);
}
};
intOperation.handle();
}
}
//定义一个抽象类:用来创建匿名内部类
abstract class Operation<T> {
public T content;
public Operation(T content) {
this.content = content;
}
abstract void handle();
}

好程序员公众号

  • · 剖析行业发展趋势
  • · 汇聚企业项目源码

好程序员开班动态

More+
  • HTML5大前端 <高端班>

    开班时间:2021-04-12(深圳)

    开班盛况

    开班时间:2021-05-17(北京)

    开班盛况
  • 大数据+人工智能 <高端班>

    开班时间:2021-03-22(杭州)

    开班盛况

    开班时间:2021-04-26(北京)

    开班盛况
  • JavaEE分布式开发 <高端班>

    开班时间:2021-05-10(北京)

    开班盛况

    开班时间:2021-02-22(北京)

    开班盛况
  • Python人工智能+数据分析 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2020-09-21(上海)

    开班盛况
  • 云计算开发 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2019-07-22(北京)

    开班盛况
IT培训IT培训
在线咨询
IT培训IT培训
试听
IT培训IT培训
入学教程
IT培训IT培训
立即报名
IT培训

Copyright 2011-2023 北京千锋互联科技有限公司 .All Right 京ICP备12003911号-5 京公网安备 11010802035720号