在Java和Android,我最终使用ArrayList<String>
的供应名单,因为我觉得他们更容易比标准String[]
使用。我真正的问题是这样的:
什么是ArrayList<String>
的<String>
部分叫?
如何创建课程并使用<>
[修饰符]? (我不知道它实际上叫什么,所以现在它是修饰符)。
谢谢!指定类型的ArrayList
回答
在这里了,你会也许看到更清晰的:
ArrayList<TypeOfYourClass>
您可以创建一个Person类,并把它传递给一个ArrayList,因为这片段是显示:
ArrayList<Person> listOfPersons = new ArrayList<Person>();
<String>
部分是型参数。它提供了各种各样的类型参数的“价值”,这是在ArrayList<E>
的E
...以同样的方式,如果你有一个方法:
public void foo(int x)
和你叫它
foo(5)
所述参数是x
,以及提供的参数是5
。基本上,类型参数和类型参数是通用等效的。
见section 4.5 of the JLS(和它的链接)的一些细节 - 和Java Generics FAQ关于仿制药比你更多信息就有可能要阅读:)
<>
之间的位是一个类型参数,以及功能称为Generics
查找用于Java的泛型语法。这会让你保持直线(很好,很多人认为Java的方法不如C++和C#)。
你不得不,不是吗? –
Supose你想一个ArrayList只填充字符串。 如果你写:
ArrayList<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
你可以肯定比如果有人试图用它将于请编译时被检测到一个int,以填补该ArrayList。
因此,仿制药在您要执行这样的限制的情况下使用。
这是类型参数。在Java中,当类被写为通用类时,你必须提供其中的一个。
这里是一个通用类定义
private class GNode<T>
{
private T data;
private GNode<T> next;
public GNode(T data)
{
this.data = data;
this.next = null;
}
}
现在,您可以创建您在通过任何类型的节点的一个例子。第t充当你的类定义泛型类型参数。如果你想创建一个整数的节点,只是做:
GNode<Integer> myNode = new GNode<Integer>();
应当注意的是,你的类型参数必须是一个对象。这通过Java的自动装箱和自动拆箱来实现。这意味着你不能使用java原始类型,你必须改用相应的类。
Boolean instead of bool
Integer instead of int
Double instead of double
etc...
另外,如果你不传入类型参数,我敢肯定你的代码仍然会编译。但它不会工作。
- 1. 指定ArrayList元素的类型
- 2. 多类型定制arraylist
- 3. C#SOAP:无法识别指定的类型:name ='arrayList'
- 4. 如何为新的ArrayList指定项目类型<V> [N]?
- 5. 泛型ArrayList类?
- 6. 未指定类型的返回类型
- 7. 只允许ArrayList中的特定类型
- 8. 类没有指定类型
- 9. 有两种类型的Arraylist:如何确定第一种类型?
- 10. JavaFX - ArrayList类型X
- 11. ArrayList泛型:子类
- 12. 类型'{}'无法指定为'number'类型
- 13. 不兼容的指针类型指定
- 14. 指定字符串类型的指针类型
- 15. Java:将指定的类型指定为泛型
- 16. Combobox和TextField ArrayList的类型
- 17. ArrayList的类型声明
- 18. 更改ArrayList的类型
- 19. ArrayList的类型推断
- 20. 指定子类中的集合类型
- 21. 如何指定类的类型
- 22. 指定类型的变量和类
- 23. Arduino的类“没有指定类型”
- 24. 类没有指定类型的错误
- 25. 类的头,串没有指定类型
- 26. CompositionBatch.AddExportedValue与类型指定
- 27. “__kernel”没有指定类型
- 28. 指定返回类型
- 29. 'MYV' 没有指定类型
- 30. C++“......没有指定类型”
Google java泛型 – david99world
它被称为_type parameter_。 –
对象输入<> –