我正在尝试查找有关原始类型的信息,是否可以使用接口以下方式:
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
类型的对象。任何提示/解释都受到高度赞赏。
感谢。
答案 0 :(得分:3)
我会让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) {
}
});