我读过关于为什么不能在泛型类中使用(编辑 - 泛型)(使用通用类中的类型参数)静态方法的文章,但为什么你可以在非泛型类中使用静态泛型方法?我没有看到第二个被允许的原因,但我有点理解为什么第一个不是。(Java)静态通用方法与泛型类静态方法
0
A
回答
9
为什么你不能有一个(编辑 - 通用)(其使用这种类型的参数从通用类)静态方法在泛型类
这样做的原因很简单:类型参数与类别不相关,但与类别实例相关联。
即,你不能这样做
class Test<T> {
public static void sayHello(T t) { // T for which instance?!
System.out.println("Hello");
}
}
为什么你再使用非通用类的静态泛型方法?
为什么不呢?一个通用的方法需要的类型参数,所以如果它是静态的或没有,或者如果它是在类是通用的或不等等
例如,这罚款编译没关系:
class Test {
public static <T> void sayHello(T t) {
System.out.println("Hello " + t);
}
}
而且你会这样调用方法:
Test.<String>sayHello("some argument");
^^^^^^^^
type parameter provided at the method-call: no instance required.
相关问题
- 1. Java:泛型方法只与静态?
- 2. 静态方法中的泛型类型
- 3. Java泛型,单例和静态方法
- 4. 静态方法重载与泛型
- 5. 静态类/方法this和泛型
- 6. 通过静态反射信息静态泛型方法
- 7. 通用静态方法类型
- 8. Java到C#/静态方法与非类型通用类参数
- 9. Java静态方法+类
- 10. Java:静态方法与非静态方法
- 11. Java静态方法
- 12. Java静态方法
- 13. Java错误:静态方法无法引用非静态方法
- 14. 从静态基类方法调用静态派生类方法
- 15. 调用静态类的方法传递动态变量的类型与泛型
- 16. 如何在类中为泛型类型调用静态方法?
- 17. 静态静态方法?
- 18. 静态与非静态方法2
- 19. 静态与非静态方法
- 20. 静态类和静态方法
- 21. 在Dao类中使用静态方法或非静态方法?
- 22. 带有泛型子类的Java(以及静态方法)
- 23. 通用静态方法
- 24. 调用静态类方法
- 25. 使用静态方法的泛型的解决方法
- 26. 使用类型调用静态方法
- 27. 使用通用类的静态方法
- 28. 如何使Java通用方法静态?
- 29. 静态方法和非静态方法Java
- 30. 调用静态类中的非静态方法 - java
你的意思是抽象的吗? – 2012-03-18 21:28:34
我编辑了这个问题,sry回合。 – rubixibuc 2012-03-18 21:55:18