簡體   English   中英

Java用特定類型擴展超類的泛型方法

[英]Java extend generic method of superclass with specific type

說我有以下界面:

public interface Renderer {
...
    public <T> void setBackingGraphics(T t);
}

現在如何以指定要使用的特定“ T”的方式實現接口?

@Override
public <Graphics> void setBackingGraphics(Graphics t) {
    ...
}

上面的方法顯然不起作用,因為“圖形”將被視為另一個占位符。 我實際上如何使其“可用”? 讓我通過使用通用類作為示例來說明我的意思:

public interface A<T> {
    T someT();
}
public class C extends A<B> {
    B someT(){...}
}

如果我只想將其應用於特定方法,上述方法如何工作?

您需要能夠使用任何Object調用Renderer setBackingGraphics ,因此您唯一可以做的就是:

@Override
public void setBackingGraphics(Object t) {
}

如果需要更具體的信息,則需要綁定參數,例如:

public interface Renderer {
    public <T extends String> void setBackingGraphics(T t);
}

然后您可以執行以下操作:

@Override
public void setBackingGraphics(String t) {
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM