java 8中的Predicate接口有一个静态方法,如:
static <T> Predicate<T> isEqual(Object targetRef) {
return (null == targetRef)
? Objects::isNull
: object -> targetRef.equals(object);
}
Run Code Online (Sandbox Code Playgroud)
为什么不这样做:
return (null == targetRef)
? null
: object -> targetRef.equals(object);
Run Code Online (Sandbox Code Playgroud)
我的意思是,这个方法参考Objects::isNull没有带来任何进一步的改进......并且正在减少一点可读性......
if为null我返回true ...完成!或者我在幕后错过了一些陷阱......?
由于我是从一个java岛上来的,我觉得为什么编译器不会警告无法访问的代码,例如:
int main(int argc, char** argV)
{
std::list<int> lst = {1,2,3,4};
return 0;
std::cout << "Done!!!" << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的问题:
为什么我可以编译带有2个返回的代码?
我的编译器是gcc for c ++ 11,在Windows上,代码块