我讀過關於爲什麼不能在泛型類中使用(編輯 - 泛型)(使用通用類中的類型參數)靜態方法的文章,但爲什麼你可以在非泛型類中使用靜態泛型方法?我沒有看到第二個被允許的原因,但我有點理解爲什麼第一個不是。(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