【问题标题】:what is "<>" use for in java? for example List<File> sourceFileList = new ArrayList<File> [duplicate]java中的“<>”有什么用?例如 List<File> sourceFileList = new ArrayList<File> [重复]
【发布时间】:2013-02-25 18:04:54
【问题描述】:

我是 Java 新手。 我想知道 &lt;&gt; 在 java 中的用途。

这是一个让我感到困惑的例子: List&lt;File&gt; sourceFileList = new ArrayList&lt;File&gt;

【问题讨论】:

  • 这个问题是“普通笑话”吗?请谷歌搜索。
  • 这是指定对象类型。
  • 首先点击 Java 教程:docs.oracle.com/javase/tutorial/java/generics(该章和其余部分。)
  • 了解泛型..
  • 似乎是免费的 REPUTATIONGIVEAWAY ;) 每个人都在兑现 :D

标签: java


【解决方案1】:

&lt;&gt; 是一个占位符,它持有generic type。您将类型参数嵌入尖括号中。

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

链接:

【讨论】:

  • 投反对票的人可以发表评论吗??
【解决方案2】:

它是 1.5 版中引入的 Java 泛型的一部分。

以下链接可能有用:http://docs.oracle.com/javase/tutorial/java/generics/

【讨论】:

    【解决方案3】:

    一般用于java中的Generic数据类型。

    所以这里的 List 意味着你有一个文件列表。

    所以如果你写 List 它将成为人员列表。因此,您可以将 中的文本替换为任何类的对象。

    【讨论】:

      【解决方案4】:

      它是告诉编译器什么样的数据要进入对象。例如,List&lt;File&gt; 告诉 java 你要创建一个 List 来填充 File 类型的数据。再举一个例子:Array&lt;Integer&gt; 会告诉 java 你想要一个你将用整数数据填充的数组。

      【讨论】:

        【解决方案5】:

        Java Generics(不要与C++ templating 混淆)。它允许您在定义泛型类时定义类型。

        在您的情况下,List&lt;File&gt; 声明您有一个包含 File 类型的列表。

        【讨论】:

          【解决方案6】:

          你应该看看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

          【讨论】:

            【解决方案7】:

            在您的示例中, 用于实例化 ArrayListFile 对象。 仅指定 ArrayList 包含的对象的类型

            【讨论】:

              【解决方案8】:

              泛型...

              我们将 String 对象存储在数组列表中,为了检索一个对象,我们必须对它进行类型转换。只有程序员知道他在 ArrayList 中存储了哪些对象,因此他负责将其类型转换为所需的类型。如果,他错误地将其转换为错误的类型怎么办?

              Java 代码:

              System.out.println((Integer)myArrayList.get(3));
              

              错误: 线程“主”java.lang.ClassCastException 中的异常:java.lang.String

              为了避免这种情况,泛型开始发挥作用。我们可以指定 List 的类型,以便 list 只能保存或存储该类型的对象。其他一些类型的对象不会被存储到列表中,因此不需要类型转换。

              Java 代码:

              ArrayList<String> myArrayList = new ArrayList<String>();
              

              myArrayList 不仅可以存储'String 对象。类型安全得到保证,现在程序员可以更好地控制数组列表。

              当我们声明类或接口的实例时,类型在尖括号中指定。如果没有泛型,类型参数将被省略,但无论何时从列表中提取元素,都必须显式转换。

              【讨论】:

              • It is used for parametrized Arraylist.。不对,Generics 不仅仅用于 ArrayList,其实整个 Collections API 都是泛型化的。
              • 是的.. 在当前上下文中。
              【解决方案9】:

              如果你想把你的代码翻译成英文来阅读它,你可以在看到 时说“of type”。

              例如

              List<File> sourceFileList 
              

              说“文件类型列表,“sourceFileList””

              【讨论】:

                【解决方案10】:

                列表的数据类型。 示例:

                ArrayList<String> yourArrayList = new ArrayList<String>;
                

                它将您的ArrayList 声明为字符串。除了使用yourArrayList.get(index).toString();,您还可以使用yourArrayList.get(index);,它将返回一个String(在此示例中)并且只接受String 数据类型。

                【讨论】:

                  猜你喜欢
                  • 2019-07-10
                  • 2019-03-15
                  • 2014-07-22
                  • 2017-05-08
                  • 2012-04-08
                  • 2015-05-29
                  • 1970-01-01
                  • 2017-04-20
                  • 2012-09-29
                  相关资源
                  最近更新 更多