【java8新特性系列】 类型推断

JAVA8新特性 类型推断

1. 由来

Java 8中引入了改进的类型推断(Improved type inference)特性,旨在更好地推断泛型参数类型。它通过使用目标类型推断、菱形运算符和方法引用等方式,减少了开发人员在代码中显式指定泛型类型的冗余。

2. 常见五种示例和说明

以下是Java 8中改进的类型推断的五种常见示例用法及其说明:

  1. 示例命令:List<String> list = new ArrayList<>();

    • 说明:使用菱形运算符<>创建一个ArrayList实例,无需显式指定泛型类型。
  2. 示例命令:Map<Integer, String> map = new HashMap<>();

    • 说明:使用菱形运算符<>创建一个HashMap实例,无需显式指定泛型类型。
  3. 示例命令:Function<Integer, String> func = String::valueOf;

    • 说明:使用方法引用创建一个函数接口Function的实例,根据目标类型推断参数类型。
  4. 示例命令:Optional<String> optional = Optional.empty();

    • 说明:使用泛型方法empty()创建一个空的Optional实例,无需显式指定泛型类型。
  5. 示例命令:Stream<Integer> stream = Stream.of(1, 2, 3);

    • 说明:使用泛型方法of()创建一个包含整数元素的Stream实例,无需显式指定泛型类型。

3. 多种主要用法

改进的类型推断主要用于以下方面:

  • 创建集合、数组和其他泛型对象时,可以使用菱形运算符<>省略类型参数。
  • 在方法引用中,根据目标类型推断方法的参数类型。
  • 在Lambda表达式中,根据上下文推断参数类型。
  • 在泛型方法中,根据方法调用的上下文推断类型参数。
  • 减少代码中显式指定泛型类型的冗余,提高代码的可读性和简洁性。

4. 有没有其他类似命令

除了Java 8的改进的类型推断特性之外,Java语言在后续版本中也对类型推断做出了一些改进。例如,在Java 10中引入了局部变量类型推断(Local Variable Type Inference)特性,允许在局部变量的声明中使用var关键字进行类型推断。

5. 区别

改进的类型推断是Java 8引入的特性,通过目标类型推断、菱形运算符和方法引用等方式,减少了开发人员在代码中显式指定泛型类型的冗余。而局部变量类型推断是Java 10引入的特性,允许使用var关键字进行类型推断,主要用于局部变量的声明。

6. 官方链接

您可以在以下链接中查看Java 8中改进的类型推断特性的官方文档:
Type Inference for Generic Instance Creation

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BigDataMLApplication

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值