以下のオプションから文字列をブール値に変換するときに最高のパフォーマンスを発揮します。
boolean value = new Boolean("true").booleanValue();
boolean value = Boolean.valueOf("true");
boolean value = Boolean.parseBoolean("true");
以下のオプションから文字列をブール値に変換するときに最高のパフォーマンスを発揮します。
boolean value = new Boolean("true").booleanValue();
boolean value = Boolean.valueOf("true");
boolean value = Boolean.parseBoolean("true");
boolean value = new Boolean("true").booleanValue();
最悪の場合、Boolean
常に新しいオブジェクトが作成されます。BTWbooleanValue()
は必要ありません。開梱すると自動的に行われます。
boolean value = Boolean.valueOf("true");
はるかに優れています。キャッシュされたBoolean
インスタンスを使用しますが、不要な (非常に安価ではありますが) ボックス化解除を実行します。
boolean value = Boolean.parseBoolean("true");
何も無駄にならず、プリミティブでほとんど動作せず、メモリ割り当ても必要ありません。ところで、それらはすべて(Sun / Oracle)に委任されます:
private static boolean toBoolean(String name) {
return ((name != null) && name.equalsIgnoreCase("true"));
}
あなたが偏執狂的である場合は、toBoolean(String name)
ケースを無視しない独自のケースを作成できます-無視できるほど高速です:
boolean value = "true".equals(yourString);
これがソースです。Tomaszが私を打ち負かして理由を答えたようです:
public static Boolean valueOf(String s) {
return toBoolean(s) ? TRUE : FALSE;
}
public static boolean parseBoolean(String s) {
return toBoolean(s);
}
public Boolean(String s) {
this(toBoolean(s));
}
private static boolean toBoolean(String name) {
return ((name != null) && name.equalsIgnoreCase("true"));
}
2 番目と 3 番目のオプションは、静的ファクトリ メソッドであり、内部的に参照を再利用できるため、最適なオプションです。
と の実装を見るBoolean.valueOf("true")
とBoolean.parseBoolean("true")
、どちらも同じことを行います (どちらも を呼び出します)が、Boxed 型toBoolean(s);
を返すという違いがあります。valueOf