原始类型是Java中的一个高级主题。它需要对参数化类有良好的理解,但可能仍然令人困惑。幸运的是,IDE可以在我们出错时帮助我们。特别是Eclipse IDE会在我们出错时发出警告。
在本教程中,我们将检查这个警告以及缓解问题的步骤。
考虑以下代码:
List strings = new ArrayList();
_List_和随后的_ArrayList_是参数化类型。我们可以在类声明中看到这一点:
大约 2 分钟
原始类型是Java中的一个高级主题。它需要对参数化类有良好的理解,但可能仍然令人困惑。幸运的是,IDE可以在我们出错时帮助我们。特别是Eclipse IDE会在我们出错时发出警告。
在本教程中,我们将检查这个警告以及缓解问题的步骤。
考虑以下代码:
List strings = new ArrayList();
_List_和随后的_ArrayList_是参数化类型。我们可以在类声明中看到这一点:
在本文中,我们将探讨在处理集合的生产和消费时Java泛型的使用。
我们还将讨论_extends_和_super_关键字,并查看几个PECS(生产者扩展消费者超类)规则的例子,以确定如何正确使用这些关键字。
对于本文中的代码示例,我们将使用一个简单的数据模型,其中有一个_User_基类和两个扩展它的类:Operator_和_Customer。
重要的是要从集合的角度应用PECS规则。 换句话说,如果我们遍历一个_List_并处理其元素,列表将作为我们逻辑的生产者:
在本教程中,我们将深入探讨Java中的_Holder<T>_类。尽管这不是Java内置的类,但Holder<T>的概念可以显著提高我们的开发效率。让我们了解_Holder<T>_的强大之处以及它如何增强我们的代码。
为了理解我们为什么可能需要一个_Holder<T>类,我们首先考虑一个常见的场景:向方法传递一个简单的_Boolean。我们将创建一个模拟服务方法_getSupplierByZipCode()_,期望它修改_Boolean_的值: