什麼類型定義了一個參數來確保它是確定的類並實現確定的接口?我正在使用< T擴展MyBaseClass & MyInterface >用於方法定義中的參數類型,但是我的參數不擴展MyBaseClass,IS是MyBaseClass類型。 我想確保我收回的參數是MyBaseClass類型並實現MyInterface什麼樣的類型定義了一個確定類的實參,並實現了確定的接口?
0
A
回答
1
您不能。你要麼需要參數具有某種具體類型(這意味着它的子類也是允許的),或者實現某個特定的接口。
使用泛型可以強制參數化一個或多個類型的參數,例如不允許使用子類型,但據我所知,它與您的問題無關。
但是,您可以在體內使用instanceof
以及與arg.getClass()
進行比較。
-1
我會假設你是問,如果你可以做這樣的事情 -
public <T extends YourBaseClass, YourInterface> void foo(T bar) {
答案是肯定的,你可以。如果嘗試將一個參數傳遞給YourBaseClass,但不實現YourInterface,則代碼將不會編譯。
+0
謝謝老兄,完美作品 –
+0
@Carlos Correa - 不客氣。 – Kal
相關問題
- 1. 確定類型實現的接口
- 2. 確定一個類是否實現了一個非常特定的接口
- 3. 確定一個類的超類是否實現了java中的某個接口
- 4. 要求參數擴展了一個特定的類並實現了一個特定的接口
- 5. 確定一個類是否實現了一個接口而不引用它
- 6. 確定泛型類實現類型
- 7. 如何定義實現接口並約束類型參數的泛型類?
- 8. 如何確定類型是否實現Powershell中的接口
- 9. 什麼是Java bean的約定,並實現了像Comparable這樣的接口?
- 10. 定義接口中的類實現
- 11. 如何確定一類具有實現特定接口或不
- 12. 查詢實現一個通用接口的類的泛型類型定義
- 13. 擴展一個類(實現接口)並實現相同的接口不需要類中的方法定義?
- 14. 定義實現多個接口的類型集合?
- 15. 自定義AuthenticationHandler沒有正確實現接口 - 爲什麼?
- 16. 類的ModalDirective「正確實現了接口「AfterViewInit」
- 17. 實現特定接口並具有特定超類的參數:泛型或instanceof?
- 18. 實現定義的接口
- 19. 爲什麼我的自定義類型的地圖實現不正確?
- 20. 綁定類型暗示接口實現
- 21. 如果一個類實現了一個接口,並被分配給一個具有該接口類型的變量,那麼該對象的類型是什麼?
- 22. 指定一個類參數必須實現一個特定的接口
- 23. 在決定接口與抽象類時,正確的實現是什麼?
- 24. 類,它實現了兩個接口
- 25. 確定參數的類型
- 26. 確保實現接口和繼承時的參數類型
- 27. 確定JavaScript對象實例的類型
- 28. 特定類型的實現類使用的接口
- 29. 如何定義實現servlet接口的clojure類型?
- 30. 什麼確定了一個常量?
嗯...什麼? :| – amit
我會建議不要試圖確定你有什麼。擁有一個接口或抽象基類的一個很大的好處是你不需要知道你擁有什麼類的細節。你只要知道你可以調用接口中指定的方法,它就可以爲你工作,因爲你相信他們完成了接口指定的合約。如果您需要確切知道哪些課程已通過,您可能會在設計上做錯了什麼。 – corsiKa