[英]Java generic at return type
我见过这样的代码,无法理解它的意义:
public class ClassA{
public <T> void getContactName(ContactList<T> contactList){
//do something
}
}
基本上我不明白这一点。 该类编译没有任何错误。 我认为ClassA也应该与参数'T'一致。
谢谢
定义
public <T> void getContactName(ContactList<T> contactList){
//do something
}
表示只有方法是通用的,名称为T
的类型仅在方法范围内有效。 如果T
类型参数仅在单个方法中使用,则不需要该类是通用的。
作为旁注,请记住,在Java中,您可以制作通用:
但是你不能制作通用的:
在Java Tutorial on Generic Methods and Generic Types以及泛型方法的详细示例和用法中有更好的解释。
这是一个例子(内置Arrays
类)。 查看方法签名,确保方法返回类型与方法参数完全相同,因为类本身不是通用的,但您可以将方法设置为泛型。
class Arrays {
public static <T> List<T> asList(T... a) {
...
}
您可以创建上面提到的static generic utility methods
,您don't need to create object
类的don't need to create object
。
根据Java语言规范:
您可以像这样使用您的方法:
new ClassA().<String>getContactName(contactList);
或者您不能指定类型参数
new ClassA().getContactName(contactList);
您可以阅读规范以获取更多详细信息以及您可以在此处找到的常见问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.