[英]Using raw type with interface in Java
我正在尝试查找有关原始类型的信息,并且可以通过以下方式与接口一起使用:
public class GlobalConverter {
public interface Listener {
void onReady(Object t);
}
public void convert(String string, Class<?> resultClass, Listener listener) {
try {
listener.onReady(resultClass.newInstance());
} catch (IllegalAccessException e) {
} catch (InstantiationException e) {
}
}
public void test() {
convert("Test", MyClass.class, new Listener() {
@Override
public void onReady(Object object /* Possible to be MyClass object ? */) {
}
});
}
}
我想要实现的目标与上面类似,但是对于最终用户, onReady
回调将返回对象的resultClass
类型。 任何提示/解释高度赞赏。
谢谢。
我将使Listener
本身具有通用性:
public interface Listener<T> {
void onReady(T t);
}
然后, convert
方法也应该是通用的:
public <T> void convert(String string, Class<T> resultClass, Listener<T> listener) {
try {
listener.onReady(resultClass.newInstance());
} catch (IllegalAccessException e) {
} catch (InstantiationException e) {
}
}
并这样称呼:
convert("Test", MyClass.class, new Listener<MyClass>() {
@Override
public void onReady(MyClass object) {
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.