我想写一个公共方法,传入两个相同类型对象a、b,如果a是null就返回b
public static ifObj(Object a, Object b) {
if(null == a) {
return b;
}else {
return a;
}
}
Obj obj = ifObj(xxx, new xxx());
可是这样做返回结果还要转型,我想ifObj的基础上修改一些,调用方法传一个对象类型或泛型,判断a为null的话,根据类型或泛型泛型new一个对象返回;这样思路可以吗,语法应该怎样写才能实现呢。
@learnmeahaskell 在评论中给了你思路,不过我想再提一点:
ifObj(xxx, new xxx())
的话,也就是说无论xxx
是否为空,都会执行new xxx()
来生成新实例,这样不是很好,会导致无意义的资源开销,可以用个接口来延迟加载。orElseGet
里其实就是supplier
。