[英]How to infer type argument of ? extends Class in interface declaration
我正在開發游戲的一些接口,到目前為止,我已經了解了以下接口定義:
public interface Player<A extends Action, R extends Result> { }
public interface Game<P extends Player<? extends Action, ? extends Result>> { }
但是現在我想訪問? extends Result
在Game
界面中? extends Result
,我知道我可以通過向Game
添加三個通用類型來做到這一點,但由於信息已經存在,因此不需要。
我想要以下內容:
public interface <A, R> Game<P extends Player<A extends Action, R extends Result>> { }
但是,此代碼在Java(Java 8)中是不合法的,因為我不能這樣定義<A, R>
。
我該怎么做?
您將需要按照您最初的建議進行操作,向“ Game
”添加“三個通用類型”。
只要在聲明泛型類型參數時創建適當的界限,就可以使用它們來定義另一個類型參數。
這是在接口方法中獲得A
和R
的最佳方法。
interface Game<A extends Action, R extends Result, P extends Player<A, R>> { }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.