什么是“&lt;&gt;”用于java?例如List <file> sourceFileList = new ArrayList <file> </file> </file>

时间:2013-02-25 09:36:35

标签: java

我是java的新手。 我想知道java中使用的<>是什么。

这是一个我感到困惑的例子: List<File> sourceFileList = new ArrayList<File>

10 个答案:

答案 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数据类型。