我是java新手。我想知道<>
在java中的作用是什么。
这是一个我感到困惑的例子:List<File> sourceFileList = new ArrayList<File>
<>
是一个占位符,它持有泛型类型。将类型参数嵌入到尖括号中。
List<File> sourceFileList = new ArrayList<File>
上面的代码段描述了您的列表只能有File类型的实例。它提供编译时类型的安全性。只能将文件/子类型的文件对象添加到列表中。
sourceFileList.add(new File("test.txt"));
sourceFileList.add("abc");// compiler error as your
list only accepts File instances
链接:
- 很棒的泛型教程
- Oracle官方文档
它是1.5版中引入的Java泛型的一部分。
以下链接可能有用:http://docs.oracle.com/javase/tutorial/java/generics/
<>通常用于java中的泛型数据类型。
所以这里的列表意味着你有一个文件列表。
因此,如果您编写List<个人>它将成为人员列表。因此,您可以替换<>中的文本带有任何class对象。
它告诉编译器什么样的数据将进入对象。例如,List<File>
告诉java,您希望创建一个将用File类型数据填充的List。举个例子:Array<Integer>
会告诉java你想要一个数组,你将用Integer数据填充它。
Java泛型(不要与C++模板混淆(。它允许您在定义已生成的类时定义类型。
在您的案例中,List<File>
表示您有一个包含File
类型的列表。
您应该看看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
在您的示例中,<>正在被用于实例化CCD_ 9对象中的CCD_。<>仅指定ArrayList持有的对象类型
泛型。。。
我们将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不能只存储"字符串对象"。确保了类型安全,现在程序员可以更好地控制数组列表。
当我们声明类或接口的实例时,类型在尖括号中指定。在没有泛型的情况下,类型参数会被省略,但无论何时从列表中提取元素,都必须显式强制转换。
如果您想将代码翻译成英文阅读,当您看到<>时,可以说"of type"。
例如
List<File> sourceFileList
say"List of type File,"sourceFileList">
列表的数据类型。示例:
ArrayList<String> yourArrayList = new ArrayList<String>;
它将您的ArrayList
声明为字符串。您可以不使用yourArrayList.get(index).toString();
而使用yourArrayList.get(index);
,并返回String
(在本例中(,并且只接受String
数据类型。