Pour répondre à la question dans le titre: null
n'est ni un String
ni Object
, mais une référence à l'un ou l'autre peut être attribué à l' null
.
Je suis d'ailleurs surpris que ce code compile. J'ai essayé quelque chose de similaire auparavant et j'ai eu une erreur de compilation, en disant que l'appel a été ambigu.
Toutefois, dans ce cas, il semble que le compilateur est le choix de la méthode qui est la plus faible de la chaîne alimentaire. C'est en supposant que vous souhaitez au moins la version générique de la méthode dans l'ordre pour vous aider.
Je vais voir si je peux creuser l'exemple où j'ai obtenu une erreur de compilateur en cette (presque) exactement le même scénario, cependant...]
EDIT: je vois. Dans la version que j'ai fait, j'ai eu deux méthodes surchargées d'accepter un String
et Integer
. Dans ce scénario, il n'y a pas de "plus spécifiques" paramètre (comme en Object
et String
), de sorte qu'il ne peut pas choisir entre eux, à la différence dans votre code.
Très cool question!