2013-06-29 15 views
7

これの値は何ですか?どこかでC#(this == null)で読むことができます。しかし、Javaではどうですか?それで、次の断片はいつもtrueを返しますか?"this"リファレンスはJavaでnull null

if(this!=null) 
{ 
    return false; 
} 
else 
{ 
    return true; 
} 
+0

(私のような)人たちは、「this」*が「null」になるかもしれないと思う人には、このQ&Aをお読みください - http://stackoverflow.com/questions/3143498/why-check-this-null –

+1

@ StephenC..Thanks –

答えて

7
if(this!=null) 

上記常にあなたのifの最初の分岐が常に実行されますことを意味し、trueに評価され、関数は常にfalseを返します。

+0

@StinePike確かに。他に誰かが示唆しましたか?この答えで?あなたのポイント? – EJP

+0

@EJP ..ああ、最初のnpeは有効ではないと書きました。私は彼がテキストを変更したのを見ませんでした。だから彼が修正したので、私はそのコメントを削除しました:) – stinepike

+0

@EJP: 'this =!null'について、私は構文が無効であると言っていました。 '=!'が '!='に変更されたので、私はその答えを編集して質問にマッチさせました。したがって、混乱。 – NPE

0

インスタンスメソッドまたはコンストラクタ内では、thisは現在のオブジェクトへの参照です。したがって、決してnullではありません。

+0

決して偽ではありません。テストは!= nullです。 – EJP

+0

いいえ、@ EJPインスタンスです。これも今でも言及しました。これは常に偽を再実行します。 –

+0

「インスタンス」とは何ですか? OPコードのテストは(this!= null)です。このテストは決して偽ではありません。 'それは有効な構文なので、それはどちらとも関係ありません。 – EJP

1

thisは、nullになることはありません。これは、オブジェクトの自己インスタンスを参照するためです。オブジェクトがすでに作成されている場合にのみアクセスされます。

ですから、elseブロックに到達できません。

1

"this"はJavaではnullになることはありません

.....?

if(this!=null) 
{ 
return false; 
} 
1

thisは、nullになることのない現在のオブジェクトを意味します。

0

「この」キーワードは、あなたが参照している「という」オブジェクトを指し、...

class Sample 
{ 
    int age; 
    Sample(int age) 
    { 
    this.age = age; // this.age -> the variable a in the that current instance 
    } 
    public void display() 
    { 
    System.out.println(age); //age here is actually this.age 
    } 
} 
public class XYZ 
{ 
public static void main(String[] args) 
{ 
    Sample a,b; 
    a.display(); 
    b.display(); 
} 
} 
0

ただ、論理的に考える - それはIf I don't exist...を言ってようなものです。

コードの制御権を持つものが存在する必要があります。それ以外の場合は、コードが最初に実行されません。

+0

そのような一般化はしないでください。いくつかの言語では、 'this'は場合によってはnullになることがあります。 – newacct

関連する問題