我是java的新手。
我想知道java中使用的<>
是什么。
这是一个我感到困惑的例子:
List<File> sourceFileList = new ArrayList<File>
答案 0 :(得分:4)
<>
是持有generic type的占位符。您将类型参数嵌入尖括号中。
List<File> sourceFileList = new ArrayList<File>
上面的代码描述了您的列表只能包含文件类型的实例。 它提供编译时类型安全性。您只能将文件/子类型的文件对象添加到列表中。
sourceFileList.add(new File("test.txt"));
sourceFileList.add("abc");// compiler error as your
list only accepts File instances
答案 1 :(得分:1)
它是1.5版本中引入的Java Generics的一部分。
以下链接可能有用:http://docs.oracle.com/javase/tutorial/java/generics/
答案 2 :(得分:1)
&LT;&GT;通常用于java中的通用数据类型。
所以这里列表意味着你有一个文件列表。
所以如果你写List&lt; Person&gt;它将成为人员名单。因此,您可以替换&lt;&gt;中的文本任何课程&#39;对象
答案 3 :(得分:0)
告诉编译器进入对象的是哪种数据。例如,List<File>
告诉java您要创建一个将填充文件类型数据的List。再举一个例子:Array<Integer>
告诉java你想要一个你将填充整数数据的数组。
答案 4 :(得分:0)
Java Generics(不要与C++ templating混淆)。它允许您在定义Generi-fied的类时定义类型。
在您的情况下,List<File>
表示您的列表包含File
类型。
答案 5 :(得分:0)
你应该看看java泛型教程:
http://docs.oracle.com/javase/tutorial/java/generics/
如果你真的喜欢它,请查看java语言规范,特别是关于泛型的部分:
http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.1.2
答案 6 :(得分:0)
在您的示例中,&lt;&gt;用于实例化ArrayList
File
个{{1}}个对象。 &lt;&gt;仅指定ArrayList包含的对象类型
答案 7 :(得分:0)
...泛型
我们将String对象存储在数组列表中并检索对象,我们必须输入它。只有程序员知道他在ArrayList中存储了哪些对象,因此他负责以所需的类型输入它。如果,他错误地把它变成了错误的类型怎么办?
Java代码:
System.out.println((Integer)myArrayList.get(3));
错误: 线程“main”中的异常java.lang.ClassCastException:java.lang.String
为避免这种情况,仿制药开始发挥作用。我们可以为List指定类型,以便列表只能保存或存储该类型的对象。其他一些类型的对象不会存储到列表中,因此不需要进行类型转换。
Java代码:
ArrayList<String> myArrayList = new ArrayList<String>();
myArrayList不仅可以存储'String对象。确保类型安全,现在程序员可以更好地控制阵列列表。
当我们声明类或接口的实例时,在尖括号中指定类型。如果没有泛型,则省略类型参数,但只要从列表中提取元素,就必须显式转换。
答案 8 :(得分:0)
如果你想将你的代码翻译成英文来阅读它,你可以在看到&lt;&gt;时说“类型”。
例如
List<File> sourceFileList
说“类型文件列表”,sourceFileList“”
答案 9 :(得分:0)
列表的数据类型。 例如:
ArrayList<String> yourArrayList = new ArrayList<String>;
它将您的ArrayList
声明为字符串。您可以使用yourArrayList.get(index).toString();
而不是使用yourArrayList.get(index);
,并返回String
(在此示例中),并且只接受String
数据类型。