2010-06-17 4 views
2

je suis tombé sur des tests qui comprenaient le code comme ceci:Cela est-il utile si (this! = Null)?

if (this != null) { 
    do something 
} 

Est-ce si la clause de toute utilisation? Y at-il un but que je ne comprends pas qui rend cela utile?

+2

Attendez, quoi? Désolé, mais cela peut difficilement être appelé une question –

+0

Il serait préférable que vous puissiez fournir la référence où vous avez vu ce code. – rahul

+0

Je l'ai vu dans les tests, je ne savais pas une bonne réponse. – nkukhar

Répondre

16

this ne peut jamais être null en Java donc ce type de code n'est jamais utile.

+0

Heh, à cause de la méchanceté générale de la question, je n'avais même pas remarqué qu'il utilisait this. –

+3

Eh bien, en théorie, il serait nul dans un contexte statique, mais le compilateur vous empêchera de le faire :-) – kasperjj

+2

@kasperjj 'this' n'existe pas dans un contexte statique (c'est-à-dire qu'il n'est tout simplement pas là) - c'est un peu étrange de dire que quelque chose qui n'existe pas serait "théoriquement" null "" ... – Jesper

2

En Java, le mot clé this ne peut être utilisé que dans une méthode non statique d'une classe. Par conséquent, si vous exécutez du code dans la méthode, this ne peut jamais être null car vous êtes sûr d'avoir une instance de cet objet, sinon la méthode n'aurait jamais pu être appelée.

+4

Déception: Avec if (this == null) {a(); }, le compilateur ne reconnaît pas a() comme code mort. –

0

Vous ne pouvez pas utiliser "this" dans un environnement statique qui est le seul endroit où "this" peut être nul.

Vous pouvez appeler une méthode statique ou une variable sans objet, sans instance. "this" pointe vers l'instance actuelle de la classe. Vous ne pouvez utiliser "ceci" que si vous avez un objet, donc il ne sera jamais nul.

0

Je suis un programmeur assez désemparé, alors ne croyez pas un mot que je dis (et corrigez-moi si je me trompe!), Mais il appelle à l'esprit cogito ergo somme - Je pense, donc je un m. Descartes called it "le premier et le plus certain qui se présente à celui qui conduit ses pensées dans l'ordre." De même, que this != null semble être (en Java, de toute façon, du son de celui-ci) parmi les conclusions les plus triviales que le code peut atteindre. Soigné!

+0

ha, ouvrez-vous toutes vos réponses avec cette ligne? Edit: apparemment vous faites :) –

+0

ce n'est pas vraiment une réponse, n'est-ce pas? –

+0

Non ce n'est pas. : -/Doit avoir été un commentaire, si ça vaut le coup de dire du tout. – Toph

1

Le programmeur cherchait une façon d'écrire colombophile:

if (true) { 

} 
Questions connexes