Ho riscontrato un bug nel mio codebase, ho ristretto a ciò che ha causato questo comportamento. Il primo caso di test fallisce, mentre gli ultimi due hanno esito positivo.È un valore null immesso in Java
@Test
public void testBooleanNull1() {
Boolean nullB = null;
assertFalse(Boolean.valueOf(nullB));
}
@Test
public void testBooleanNull2() {
String nullS = null;
assertFalse(Boolean.valueOf(nullS));
}
@Test
public void testBooleanNull3() {
assertFalse(Boolean.valueOf(null));
}
so che Boolean.valueOf
è un metodo di overload con due varianti si prende un String
e l'altro prende una primitiva di tipo boolean
.
ho il sospetto che questo sta accadendo a causa di auto-boxe, ma non sono sicuro se questo è il caso, inoltre, non so il motivo per cui null
viene convertito a un Boolean
per quanto ne so non è un null
valido primitive
tipo.
Sono passato a utilizzare BooleanUtils
da Apache Commons
, ho chiesto questo qui per capire meglio perché il comportamento è in questo modo.
vedere anche http://stackoverflow.com/questions/2707322/what-is-null-in-java – cymatist