我是java新手。我想知道<>
java中的用途。
这是我感到困惑的一个例子:
List<File> sourceFileList = new ArrayList<File>
<>
是持有通用类型的占位符。您将类型参数嵌入尖括号中。
List<File> sourceFileList = new ArrayList<File>
上面的代码描述了您的 List 只能具有File类型的实例。它提供编译时类型安全。您只能将文件/子类型的文件对象添加到列表中。
sourceFileList.add(new File("test.txt"));
sourceFileList.add("abc");// compiler error as your
list only accepts File instances
它是 1.5 版中引入的 Java 泛型的一部分。
以下链接可能有用:http ://docs.oracle.com/javase/tutorial/java/generics/
<> 通常用于 java 中的通用数据类型。
所以这里的 List 意味着你有一个文件列表。
所以如果你写 List<Person> 它将成为人员列表。因此,您可以将 <> 中的文本替换为任何类的对象。
列表的数据类型。例子:
ArrayList<String> yourArrayList = new ArrayList<String>;
它将你声明ArrayList
为一个字符串。yourArrayList.get(index).toString();
您可以使用yourArrayList.get(index);
并将返回一个String
(在此示例中)并且仅接受数据类型,而不是使用String
。
你应该看看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
在您的示例中, <> 用于实例化ArrayList
对象File
。<> 仅指定 ArrayList 包含的对象类型
泛型...
我们将 String 对象存储在数组列表中,为了检索对象,我们必须对它进行类型转换。只有程序员知道他在 ArrayList 中存储了哪些对象,因此他负责将其类型转换为所需的类型。如果,他错误地将其转换为错误的类型怎么办?
Java 代码:
System.out.println((Integer)myArrayList.get(3));
错误:线程“main”中的异常 java.lang.ClassCastException: java.lang.String
为了避免这种情况,泛型开始发挥作用。我们可以指定 List 的类型,以便 list 只能保存或存储该类型的对象。一些其他类型的对象不会存储到列表中,因此不需要类型转换。
Java 代码:
ArrayList<String> myArrayList = new ArrayList<String>();
myArrayList 不仅可以存储 'String 对象。确保了类型安全,现在程序员可以更好地控制数组列表。
当我们声明类或接口的实例时,类型在尖括号中指定。如果没有泛型,类型参数将被省略,但无论何时从列表中提取元素,都必须显式转换。
它是告诉编译器什么样的数据要进入对象。例如,List<File>
告诉 java 你要创建一个 List 来填充 File 类型的数据。再举一个例子:Array<Integer>
告诉java你想要一个你将用整数数据填充的数组。
如果你想把你的代码翻译成英文来阅读它,你可以在看到 <> 时说“of type”。
例如对于
List<File> sourceFileList
说“文件类型列表,”sourceFileList“”