opt*_*nal 1 java null ternary-operator java-6
只是为了好奇......
假设我有一个带有两个构造函数的类:
public Class(){}
public Class(int x){}
Run Code Online (Sandbox Code Playgroud)
我想通过以下语句创建一个新类:
new Class( ( true ) ? 100 : null);
Run Code Online (Sandbox Code Playgroud)
这可以接受吗?null会使用empty/default构造函数实例化Class吗?如果没有,有没有办法用三元运算符完成这个?
请注意,我使用的是Java版本6.
你可以这样做
Class cl = flag ? new Class(100) : new Class();
Run Code Online (Sandbox Code Playgroud)
根据定义,a的类型? :与最后一个参数相同.即对象,你不能使它更少,价值更少.