java 泛型回调时怎么传递参数?

拉风的道长 发布于 2014/06/18 12:42
阅读 2K+
收藏 1

比如:

abstract class CallBack<T> {
    public void onSuccess(T object);
    public void onFail();
}

在某个地方调用回调:

void finish(CallBack<?> callback, boolean success, Object object)
{
    if(success) callBack.onSuccess(); //这里怎么填?
    else callBack.onFail();
}

求指教!

加载中
0
优雅先生
优雅先生

泛型方法:

public <T> void finish(CallBack<T> callback, boolean success, T object){
   if(success) callback.onSuccess(object); //这里怎么填?
   else callback.onFail();
}

0
王文峰
王文峰
finish定义为泛型方法
王文峰
王文峰
或者把问号变为object
0
景愿
景愿
我建议还是写一个ICallback接口,然后各种callback实现类实例传入,直接接口调用onSuccess和onFail。这样别人能更好的理解
拉风的道长
拉风的道长
虽然类型转换是可行的,其实我这么写是不想做类型转换。 恩。
0
out_lier
out_lier
void finish(CallBack<T extends ?> callback, boolean success, Object object)
{
    if(success) callBack.onSuccess(T t); //这里怎么填?
    else callBack.onFail();
}
0
返回顶部
顶部