2013-06-29 35 views
7

Giá trị này là gì? một nơi nào đó tôi đọc rằng trong C# (this == null) là có thể. Nhưng về Java thì sao? Điều đó, đoạn sau có bao giờ trở lại true không?Tham chiếu "này" có bao giờ rỗng trong Java

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

Đối với những người (như tôi) có thể 'mò mẫm ý tưởng rằng' this' * có thể là * 'null', hãy đọc phần Hỏi đáp này - http://stackoverflow.com/questions/3143498/why-check-this-null –

+1

@ StephenC..Thanks –

Trả lời

7
if(this!=null) 

Trên đây luôn đánh giá true, có nghĩa là chi nhánh đầu tiên của if của bạn sẽ luôn được thực thi, và các chức năng luôn luôn trả false.

+0

@StinePike Chắc chắn. Có ai đề nghị khác không? Trong câu trả lời này? Điểm của bạn? – EJP

+0

@EJP .. oh tại npe đầu tiên đã viết rằng nó không hợp lệ .. Tôi không thấy rằng ông đã thay đổi văn bản .. Vì vậy, khi ông sửa đổi, tôi đã xóa bình luận đó :) – stinepike

+0

@EJP: Lúc đầu câu hỏi về 'this =! null', mà tôi đã nói cú pháp không hợp lệ. Sau đó, '=!' Đã được thay đổi thành '! =', Vì vậy tôi đã chỉnh sửa câu trả lời cho phù hợp với câu hỏi. Do đó sự nhầm lẫn. – NPE

0

Trong phương thức thể hiện hoặc hàm tạo, this là tham chiếu đến đối tượng hiện tại. Do đó, không bao giờ là null.

+0

Không bao giờ sai, ý bạn là. Bài kiểm tra là! = Null. – EJP

+0

Không, @ EJP instance.I đã đề cập đến điều này cũng ngay bây giờ. Nó retrun luôn luôn sai. –

+0

'Ví dụ' là gì? Thử nghiệm trong mã OP là (this! = Null). Thử nghiệm này không bao giờ có thể sai. Vì nó là một cú pháp hợp lệ nên không có liên quan gì đến nó cả. – EJP

1

this không bao giờ có thể là null. Bởi vì điều này đề cập đến bản thân của đối tượng. Và nó chỉ được truy cập khi một đối tượng đã được tạo.

để khối khác không thể truy cập được.

1

"này" không bao giờ có thể được null trong Java

.....?

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

this là đối tượng hiện tại không bao giờ có thể rỗng.

0

từ khóa "này" dùng để chỉ "rằng" đối tượng mà bạn đang đề cập đến ..

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

Chỉ cần suy nghĩ logic - đó là giống như nói If I don't exist....

Điều hiện đang có quyền kiểm soát mã phải tồn tại, nếu không mã sẽ không chạy ở vị trí đầu tiên.

+0

Đừng nói chung như vậy. Trong một số ngôn ngữ, 'this' có thể trong một số trường hợp là null. – newacct

Các vấn đề liên quan