Java文字列をブール値に変換する
1. 概要
このチュートリアルでは、Javaのブールクラスを使用して文字列をブール値に変換するさまざまな方法を探ります。
2. Boolean.parseBoolean()
Boolean.parseBoolean()を使用すると、 String を渡して、プリミティブbooleanを受け取ることができます。
まず、 parseBoolean()が Stringを値true:でどのように変換するかを確認するテストを作成しましょう。
assertThat(Boolean.parseBoolean("true")).isTrue();
もちろん、テストは合格です。
実際、 parseBoolean()のセマンティクスは非常に明確であるため、IntelliJ IDEAは、文字列リテラル“ true”を渡すことは冗長であると警告します。
つまり、このメソッドは、文字列をブール値に変換するのに最適です。
3. Boolean.valueOf()
Boolean.valueOf()でも String を渡すことができますが、このメソッドはプリミティブbooleanではなくBooleanクラスインスタンスを返します。 。
このメソッドもString:の変換に成功していることがわかります。
assertThat(Boolean.valueOf("true")).isTrue();
このメソッドは、実際には parseBoolean()を使用してバックグラウンドで String 変換を実行し、その結果を使用して静的に定義されたBooleanインスタンスを返します。
したがって、このメソッドは、返されたブールインスタンスが必要な場合にのみ使用する必要があります。プリミティブな結果のみが必要な場合は、 parseBoolean()を直接使用する方がパフォーマンスが高くなります。
4. Boolean.getBoolean()
Boolean.getBoolean()は、 String を受け入れ、booleanを返す3番目のメソッドです。
このメソッドのドキュメントや実装を見なくても、このメソッドは String引数をboolean:に変換するためのものであると合理的に推測できます。
assertThat(Boolean.getBoolean("true")).isTrue(); // this test fails!
このテストが失敗する理由は
システムプロパティを定義することにより:
System.setProperty("CODING_IS_FUN", "true");
assertThat(Boolean.getBoolean("CODING_IS_FUN")).isTrue();
最後に、テストに合格します。 このメソッドの実装を調べると、このメソッドも parseBoolean()メソッドを使用してString変換を行っていることがわかります。
getBoolean()は文字通り parseBoolean(System.getProperty( “true”))のショートカットであり、は名前に惑わされないことを意味します。
したがって、 Boolean.getBoolean( “true”);がtrue を返す唯一の方法は、“true”というシステムプロパティとその値が存在する場合です。 trueに解析されます。
4. 結論
この短いチュートリアルでは、 Boolean.parseBoolean()、 Boolean.valueOf()、および Boolean.getBoolean()の主な違いを確認しました。
parseBoolean()と valueOf()はどちらもStringをbooleanに変換しますが、Booleanであることを覚えておくことが重要です。 getBoolean()はしません。
このチュートリアルのすべての例を含むソースコードは、Githubのにあります。