使用条件调用构造函数

Eko*_*Eko 7 java constructor

我想做这样的事情:

if (condition)
    super(foo.class);
else
    super(bar.class);
Run Code Online (Sandbox Code Playgroud)

但是超级构造函数必须是构造函数中的第一个.无论如何都可以这样做吗?

Jon*_*eet 12

假设您在两种情况下都调用相同的超构造函数并且只传入不同的参数,您可以使用条件运算符:

super(condition ? Foo.class : Bar.class);
Run Code Online (Sandbox Code Playgroud)

  • @WhoAmI:不一定.该代码可能不知道条件是什么,或选项.在某些情况下可能会这样做,但在这种情况下我们没有足够的信息说. (2认同)