有人可以帮助我吗?
几年后我回到了java,有些事情发生了变化。
我看到很多这些'<>'在建设者中使用。有人可以详细说明吗?例如:
void method(Object <b>){}
为什么b介于&lt;&gt;
之间目的是什么?
从Java 4/5开始,我在哪里可以阅读Java的新变化。感谢
答案 0 :(得分:1)
这些是泛型。它们是与类型一起的参数。例如,在Java 4中,您可以通过这种方式列出一些内容:
List stuff = new ArrayList();
stuff.add("watch");
stuff.add("pencil");
stuff.add(5.0f);
使用泛型,您可以指定它必须是特定列表,例如String
的列表:
List<String> stuff = new ArrayList<String>();
stuff.add("watch");
stuff.add("pencil");
stuff.add(5.0f); //Doesn't compile. The compiler sees that it's not a string.
此外,从Java 7开始,您可以在构造函数中使用菱形运算符,如下所示:
List<String> stuff = new ArrayList<>();
这样您就不必再次输入该参数(因为它们可以非常复杂)。
答案 1 :(得分:0)
您在菱形运算符(&lt;&gt;)中看到的参数称为泛型。泛型是Java SE1.5中引入的一个特性。它们在使用对象集合时提供类型安全性,因为编译器现在将检查集合中的元素是否属于菱形运算符中提到的类型。如果没有,编译器将抛出错误,程序将无法运行。以前,可以将任何类型的对象添加到集合中,然后如果在运行时遇到意外的对象类型,那么程序只会抛出错误,这是意外的。
请注意,泛型的使用不是强制性的,但这样做只是很好的编程习惯。