![](/img/trans.png)
[英]Java reflection: getting correct type of parameterized generic superclass method
[英]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.