Quais são os valores padrão de boolean
(primitivo) e Boolean
(wrapper primitivo) em Java?
java
boolean
default-value
Makky
fonte
fonte
O valor padrão de qualquer
Object
, comoBoolean
, énull
.O valor padrão para a
boolean
é falso.Nota: Cada primitiva tem uma classe de wrapper. Todo wrapper usa uma referência cujo padrão é
null
. As primitivas têm valores padrão diferentes:Nota (2):
void
possui um wrapperVoid
que também possui um padrãonull
e é seu único valor possível (sem o uso de hacks).fonte
Boolean
éObject
que isso tornaria óbvia a primeira linha. Isso parece bastante básico, mas para alguém que faz uma pergunta básica como essa, pode ajudar.booleano
Pode ser
true
oufalse
.O valor padrão é
false
.(Fonte: Variáveis Java Primitivas )
Boolean
Pode ser um
Boolean
objeto que representatrue
oufalse
, ou pode sernull
.O valor padrão é
null
.fonte
Se você precisar perguntar, será necessário inicializar explicitamente seus campos / variáveis, porque, se precisar procurar, é provável que outras pessoas também o façam.
O valor para uma primitiva
boolean
é falso, como pode ser visto aqui .Conforme mencionado por outros, o valor para a
Boolean
será nulo por padrão.fonte
Booleano é um objeto. Portanto, se for uma variável de instância, será nulo. Se for declarado em um método, você precisará inicializá-lo ou ocorrerá um erro do compilador.
Se você declarar como primitivo, isto é, booleano. O valor será falso por padrão se for uma variável de instância (ou variável de classe). Se ele for declarado em um método, você ainda precisará inicializá-lo para true ou false, ou haverá um erro do compilador.
fonte
Um
Boolean
membro não inicializado (na verdade, uma referência a um objeto do tipoBoolean
) terá o valor padrão denull
.Um
boolean
membro não inicializado (primitivo) terá o valor padrão defalse
.fonte
Não há padrão para
Boolean
.Boolean
deve ser construído com aboolean
ou aString
. Se o objeto não for inicializado, ele apontaria paranull
.O valor padrão de primitivo
boolean
éfalse
.http://download.oracle.com/javase/6/docs/api/java/lang/Boolean.html
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
fonte
null
.null
é o padrão, por isso não sei ao que você está se referindo quando diz que não há um. (Você talvez quer dizer algo como "Boolean
não é nemtrue
nemfalse
por defeito"?)resultado:
Isso parece óbvio, mas eu tive uma situação em que Jackson, enquanto serializava um objeto para JSON, lançava um NPE após chamar um getter, assim como este, que retorna um booleano primitivo que não foi atribuído. Isso me levou a acreditar que Jackson estava recebendo um nulo e tentando chamar um método, daí o NPE. Eu estava errado.
A moral da história é que, quando Java aloca memória para um primitivo, essa memória tem um valor mesmo que não seja inicializado, que Java equivale a falso para um booleano. Por outro lado, ao alocar memória para um objeto complexo não inicializado como um Booleano, ele aloca apenas espaço para uma referência a esse objeto, não ao próprio objeto - não há nenhum objeto na memória para se referir -, portanto, resolver essa referência resulta em nulo.
Eu acho que, estritamente falando, "o padrão é falso" está um pouco errado. Eu acho que Java não aloca a memória e atribui um valor de false até que seja explicitamente definido; Eu acho que Java aloca a memória e qualquer valor que a memória aconteça ter é o mesmo que o valor de 'false'. Mas, para fins práticos, são a mesma coisa.
fonte