学习记录:Effective Java -不要使用原生态类型,列表优于数组

第26条:请不要使用原生态类型

在Java中,原生态类型是指未经参数化的泛型类型,例如List而不是List<String>。使用原生态类型可能导致编译时错误被延迟到运行时,因此应该尽量避免使用原生态类型。

为什么不要使用原生态类型?

使用原生态类型会导致编译器无法对类型进行检查,从而增加了出错的可能性。例如,考虑以下代码:

List list = new ArrayList();
list.add("Hello");
Integer value = (Integer) list.get(0); // 运行时抛出ClassCastException

在这个例子中,由于使用了原生态类型,编译器无法检查list中的元素类型,导致在运行时出现类型转换异常。

如何避免使用原生态类型?

避免使用原生态类型的方法是始终使用泛型类型。例如,将上述代码改为:

List<String> list = new ArrayList<>();
list.add("Hello");
String value = list.get(0); // 不会出现类型转换异常

通过使用泛型类型,编译器可以在编译时对类型进行检查,从而避免了潜在的运行时异常。

第27条:消除非受检的警告

在Java中,编译器会发出非受检的警告(unchecked warning)来提示可能存在的类型安全问题。消除这些警告是很重要的,因为它们可能会导致运行时异常。

如何消除非受检的警告?

消除非受检的警告的方法包括使用@SuppressWarnings注解、使用泛型类型、以及优化代码逻辑等。例如,考虑以下代码:

List list = new ArrayList();
list.add("Hello");
String value = list.get(0); // 编译时会出现非受检的警告

可以通过使用泛型类型来消除警告:

List<String> list = new ArrayList<>();
list.add("Hello");
String value = list.get(0); // 不会出现非受检的警告

为什么要消除非受检的警告?

消除非受检的警告可以提高代码的可读性和可维护性,同时避免潜在的运行时异常。因此,在编写代码时应该尽量消除非受检的警告。

第28条:列表优于数组

在Java中,列表(List)通常优于数组,因为列表具有更好的类型安全性和灵活性。

为什么列表优于数组?

列表优于数组的原因包括:

  • 列表可以使用泛型类型,从而提供更好的类型安全性。
  • 列表可以动态调整大小,而数组的大小是固定的。
  • 列表提供了丰富的操作方法,如添加、删除、遍历等。

列表和数组的比较

考虑以下代码:

List<String> list = new ArrayList<>();
list.add("Hello");
String value = list.get(0);

String[] array = new String[1];
array[0] = "Hello";
String value = array[0];

在这个例子中,列表提供了更好的类型安全性和灵活性,因此通常情况下应该优先选择列表而不是数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值