Quelles sont les valeurs par défaut de boolean
(primitive) et Boolean
(wrapper primitif) en Java?
java
boolean
default-value
Makky
la source
la source
La valeur par défaut de any
Object
, commeBoolean
, estnull
.La valeur par défaut de a
boolean
est false.Remarque: Chaque primitive a une classe wrapper. Chaque wrapper utilise une référence dont la valeur par défaut est
null
. Les primitives ont différentes valeurs par défaut:Remarque (2):
void
a un wrapperVoid
qui a également une valeur par défautnull
et est sa seule valeur possible (sans utiliser de hacks).la source
Boolean
estObject
, cela ferait la première ligne signification évidente. Cela semble assez basique, mais pour quelqu'un qui pose une question de base comme celle-ci, cela peut aider.booléen
Peut être
true
oufalse
.La valeur par défaut est
false
.(Source: Variables primitives Java )
Boolean
Peut être un
Boolean
objet représentanttrue
oufalse
, ou peut êtrenull
.La valeur par défaut est
null
.la source
Si vous devez demander, vous devez initialiser explicitement vos champs / variables, car si vous devez les rechercher, il y a de fortes chances que quelqu'un d'autre ait besoin de le faire également.
La valeur d'une primitive
boolean
est fausse comme on peut le voir ici .Comme mentionné par d'autres, la valeur de a
Boolean
sera nulle par défaut.la source
Boolean est un objet. Donc, si c'est une variable d'instance, elle sera nulle. S'il est déclaré dans une méthode, vous devrez l'initialiser, ou il y aura une erreur de compilation.
Si vous déclarez comme primitif, c'est-à-dire booléen. La valeur sera fausse par défaut s'il s'agit d'une variable d'instance (ou d'une variable de classe). S'il est déclaré dans une méthode, vous devrez toujours l'initialiser à true ou false, ou il y aura une erreur de compilation.
la source
Un
Boolean
membre non initialisé (en fait une référence à un objet de typeBoolean
) aura la valeur par défaut denull
.Un
boolean
membre non initialisé (primitif) aura la valeur par défaut defalse
.la source
Il n'y a pas de valeur par défaut pour
Boolean
.Boolean
doit être construit avec unboolean
ou unString
. Si l'objet n'est pas initialisé, il pointerait versnull
.La valeur par défaut de primitive
boolean
estfalse
.http://download.oracle.com/javase/6/docs/api/java/lang/Boolean.html
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
la source
null
.null
est la valeur par défaut, donc je ne sais pas à quoi vous faites référence lorsque vous dites qu'il n'y en a pas. (Vouliez-vous dire quelque chose comme "Boolean
n'esttrue
nifalse
par défaut"?)production:
Cela semble évident, mais j'ai eu une situation où Jackson, tout en sérialisant un objet en JSON, lançait un NPE après avoir appelé un getter, tout comme celui-ci, qui renvoie un booléen primitif qui n'a pas été attribué. Cela m'a amené à croire que Jackson recevait un nul et essayait d'appeler une méthode dessus, d'où le NPE. J'avais tort.
La morale de l'histoire est que lorsque Java alloue de la mémoire à une primitive, cette mémoire a une valeur même si elle n'est pas initialisée, ce que Java équivaut à false pour un booléen. En revanche, lors de l'allocation de mémoire à un objet complexe non initialisé comme un booléen, il alloue uniquement de l'espace pour une référence à cet objet, pas à l'objet lui-même - il n'y a aucun objet en mémoire auquel se référer - donc la résolution de cette référence se traduit par null.
Je pense qu'à proprement parler, "par défaut à faux" est un peu hors de propos. Je pense que Java n'alloue pas la mémoire et ne lui affecte pas la valeur false jusqu'à ce qu'elle soit explicitement définie; Je pense que Java alloue la mémoire et quelle que soit la valeur de la mémoire est la même que la valeur de «faux». Mais pour des raisons pratiques, c'est la même chose.
la source