public interface OneCallback<T> {
T callbakc();
}
protected abstract <T> T get(OneCallback<T> some);
String s = a.get(new OneCallback<String>() {
@Override
public String callback() {
return null;
}
});
HashMap<String, String> map = a.get(new OneCallback<HashMap<String, String>>() {
@Override
public HashMap<String, String> callback() {
return null;
}
});
//上面语法正确,这里想使用 lambda,应该怎么写
a.get( s -> {
});
目的是想根据传入的类型来决定返回的类型,lambda 不知道怎么写
1
sagaxu 2017-07-02 21:45:17 +08:00 1
String x = a.get(() -> null);
|
2
feiyuanqiu 2017-07-02 21:56:42 +08:00
你这思路没对吧,为什么要在泛型方法里判断参数的具体类型?
|
3
hpeng 2017-07-02 22:16:05 +08:00 1
你的都没有入参啊。所以,就是`()-> {any else}` jdk8 类型推导已经比前面好很多了。不需要你指定传入的类型
|
4
doggg OP cool。感谢各位。已经解决了。自己造了一个 redis 工具类用来实现 lambda 操作,可以返回指定类型了。
|