我是Java新手,但不是编程(我通常使用Ruby编写代码)。我在Java代码示例中看到的一件事是使用<>而不是()将params传递给对象。下面是一个代码示例(摘自Google Web Toolkit教程):
public void onValueChange(ValueChangeEvent<String> event) {
String token = event.getValue();
// depending on the value of the token, do whatever you need
...
}
它与铸造有关还是别的什么?有人可以向我解释这表示或用于什么?谢谢!
答案 0 :(得分:4)
对于泛型类,这是type parameter。基本上,ValueChangeEvent<String>
表示通知侦听器值已更改的事件,在这种情况下,值为String
类型。
使用集合框架中的标准示例更容易理解:
List<String>
是包含List
个对象的String
。仅使用“原始类型”List
的优点是编译器将拒绝将除String
个对象之外的任何内容放入List<String>
的代码,并允许从中检索的对象用作String
没有投射。
基本上,泛型允许更清晰的代码并提高Java代码的整体类型安全性,因为在许多情况下不必使用Object
类型并从中转换值。
答案 1 :(得分:3)
它被称为泛型或通用参数。它们允许方法或对象在保持类型安全的同时对多种类型的数据进行操作。一个常见用途是指定集合中存储的对象类型。
有关详情,请参阅主题的wikipedia article。
答案 2 :(得分:1)
瑞茜有正确的答案。以下是一些链接:
http://download.oracle.com/javase/1.5.0/docs/guide/language/generics.html
http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf(PDF)
答案 3 :(得分:1)
尖括号的使用通常表示通用编程方法,这是一种编程风格,其中最初未声明类型,使代码更易于重复使用。
例如:
// Declare the generic class
public class GenericList<T>
{
void Add(T input) { }
}
class TestGenericList
{
private class ExampleClass { }
static void Main()
{
// Declare a list of type int
GenericList<int> list1 = new GenericList<int>();
// Declare a list of type string
GenericList<string> list2 = new GenericList<string>();
// Declare a list of type ExampleClass
GenericList<ExampleClass> list3 = new GenericList<ExampleClass>();
}
}
答案 4 :(得分:0)
<>
表示泛型。看看Generics。例如,List<String>
是一个字符串列表。
答案 5 :(得分:0)
这在java中称为generics。它们类似于C ++中的templates。
它们基本上允许您为任何类型实现泛型类,然后在初始化此类的变量时指定它应用其内容的类型(例如String,int,double等)。一个很好的例子是在ArrayList中,容器应该存储什么类型?实现是相同的,只有类型不同。
答案 6 :(得分:0)
通常使用它,因此您可以相信集合/列表的元素是某种类型。
例如,
ArrayList<String> a = new ArrayList();
a.add("Test");
myFunctionWhichAcceptsString(a.get(0));
如果 myFunctionWhichAcceptsString 仅接受String作为参数,则无法将结果转换为String,因此无法使用普通的ArrayList,因为它存储了Object和Object≠String。通过这种方式,你说这个列表必须只是字符串。您可以为任何类型的对象执行此操作。