Java 6:构造函数参数,null和三元运算符

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.

Pet*_*rey 7

你可以这样做

Class cl = flag ? new Class(100) : new Class();
Run Code Online (Sandbox Code Playgroud)

根据定义,a的类型? :与最后一个参数相同.即对象,你不能使它更少,价值更少.