web-dev-qa-db-ja.com

Java varargsをnullにすることはできますか?

私はこれをチェックして、それが必要かどうか尋ねていることに気づきました。私はこのようなコードを持っています:

public Object myMethod(Object... many) {
  if (many == null || many.length == 0)
    return this;
  for (Object one : many)
    doSomethingWith(one);
  return that;
}

しかし、それから私は疑問に思いました...私はあまりにも用心深いですか? many == nullかどうかを確認する必要がありますか?現在のJavaバージョン?で可能ですか?そうでない場合はどうすればよいですか?そうでない場合は、おそらくOracleがいつかnullになる可能性があると判断した場合に備えて、将来の保証のためにチェックを続けてください。

15
Supuhstar

Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0 on Linux 3.5.0-21-genericで試してみました

myMethod(null)を使用するとnew Object[]{null}は渡されず、nullが渡されます。 配列はJavaのオブジェクトです したがって、nullはタイプObject[]に対して有効です。

したがって、nullcheckは過度に慎重ではありません。

14
Dave