"<>"在Java中用于什么?例如 列表<File>源文件列表 = 新数组列表<File>



我是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数据类型。

最新更新