Menukar Rentetan Java menjadi Boolean

1. Gambaran keseluruhan

Dalam tutorial ini, kita akan meneroka pelbagai cara untuk menggunakan kelas Boolean Java untuk mengubah String menjadi boolean .

2. Boolean.parseBoolean ()

Boolean.parseBoolean () membolehkan kita melewati rentetan dan menerima boolean primitif .

Pertama, mari tulis ujian untuk melihat bagaimana parseBoolean () menukar String dengan nilai yang benar:

assertThat(Boolean.parseBoolean("true")).isTrue();

Sudah tentu, ujian itu lulus.

Sebenarnya, semantik parseBoolean () begitu jelas sehingga IntelliJ IDEA memberi amaran kepada kita bahawa melewati rentetan harfiah "benar" adalah berlebihan.

Dengan kata lain, kaedah ini sangat baik untuk mengubah String menjadi boolean .

3. Boolean.valueOf ()

Boolean.valueOf () juga memungkinkan kita meneruskan String , tetapi kaedah ini mengembalikan contoh kelas Boolean dan bukannya boolean primitif .

Kita dapat melihat bahawa kaedah ini juga berjaya mengubah String kita :

assertThat(Boolean.valueOf("true")).isTrue();

Kaedah ini sebenarnya menggunakan parseBoolean () untuk melakukan penukaran String di latar belakang, dan hanya menggunakan hasilnya untuk mengembalikan contoh Boolean yang ditentukan secara statik .

Oleh itu, kaedah ini hanya boleh digunakan jika instance Boolean yang dikembalikan diperlukan. Sekiranya hanya diperlukan hasil primitif, akan lebih berkesan untuk terus menggunakan parseBoolean () secara langsung.

4. Boolean.getBoolean ()

Boolean.getBoolean () adalah kaedah ketiga yang menerima String dan mengembalikan boolean .

Tanpa melihat dokumentasi atau pelaksanaan kaedah ini, ada sebab untuk menganggap bahawa kaedah ini juga untuk menukarkan yang String hujah ke dalam boolean:

assertThat(Boolean.getBoolean("true")).isTrue(); // this test fails!

Alasan bahawa ujian ini tidak adalah bahawa yang String hujah sepatutnya mewakili nama boolean harta sistem.

Dengan menentukan sifat sistem:

System.setProperty("CODING_IS_FUN", "true"); assertThat(Boolean.getBoolean("CODING_IS_FUN")).isTrue();

Akhirnya, ujian itu lulus. Memeriksa pelaksanaan kaedah ini mendedahkan bahawa ia juga menggunakan parseBoolean () kaedah untuk melakukan yang String penukaran.

Perhatikan bahawa getBoolean () secara harfiah adalah jalan pintas untuk parseBoolean (System.getProperty ("true")), yang bermaksud bahawa kita tidak boleh disesatkan dengan nama.

Oleh itu, satu-satunya cara Boolean.getBoolean ("benar"); akan pernah kembali benar adalah jika ada sifat sistem yang disebut "benar" dan nilainya berubah menjadi benar .

4. Kesimpulan

Dalam tutorial ringkas ini, kita telah melihat perbezaan utama antara Boolean.parseBoolean () , Boolean.valueOf () , dan Boolean.getBoolean () .

Walaupun parseBoolean () dan valueOf () menukar String menjadi boolean , penting untuk diingat bahawa Boolean.getBoolean () tidak.

Kod sumber dengan semua contoh dalam tutorial ini boleh didapati di Github.