Giả sử chúng ta có một tên lớp là Home. Sự khác biệt giữa Trang chủ.this và Trang chủ.class là gì? Ý họ là gì?Ý nghĩa của .this và .class trong java
Trả lời
Home.this
Home.this
đề cập đến các trường hợp hiện tại của lớp Home
.
Cụm từ chính thức cho cụm từ này có vẻ là Qualified this, như được tham chiếu trong Mục 15.8.4 của Đặc tả ngôn ngữ Java.
Trong một lớp đơn giản, hãy nói Home.this
và this
sẽ tương đương. Biểu thức này chỉ được sử dụng trong trường hợp có một lớp bên trong, và một cần tham chiếu đến lớp kèm theo.
Ví dụ:
class Hello {
class World {
public void doSomething() {
Hello.this.doAnotherThing();
// Here, "this" alone would refer to the instance of
// the World class, so one needs to specify that the
// instance of the Hello class is what is being
// referred to.
}
}
public void doAnotherThing() {
}
}
Home.class
Home.class
sẽ trở lại với đại diện của lớp Home
như một đối tượng Class
.
Cụm từ chính thức cho cụm từ này là class literal, như được tham chiếu trong Phần 15.8.2 của Đặc tả ngôn ngữ Java.
Trong hầu hết các trường hợp, biểu thức này được sử dụng khi biểu thức được sử dụng reflection và cần một cách để tham chiếu đến chính lớp đó chứ không phải là phiên bản của lớp.
Home.class
trả về phiên bản java.lang.Class<Home>
tương ứng với lớp Home
. Đối tượng này cho phép bạn phản ánh qua lớp (tìm ra phương thức và biến nào của nó, lớp cha mẹ của nó là gì…) và tạo ra các cá thể của lớp.
Home.this
chỉ có ý nghĩa nếu bạn đang ở trong lớp lồng nhau của Trang chủ. Ở đây Home.this
sẽ trả về đối tượng của lớp Home
rằng đối tượng của lớp lồng nhau được lồng vào.
- 1. Ý nghĩa của 0_0 trong Java 7
- 2. .class nghĩa là gì trong Java?
- 3. Ý nghĩa của! theo cú pháp Java
- 4. ý nghĩa của 'sourceSets.all *'
- 5. Ý nghĩa của char zero (0) trong Java là gì?
- 6. Ý nghĩa của ".. ::." trong C#?
- 7. Ý nghĩa của "." trong printf
- 8. Ý nghĩa của thẻ cha trong Maven
- 9. Ý nghĩa của dấu ngoặc đơn trong C++ và C
- 10. ý nghĩa của "tham chiếu" và "dereferencing"
- 11. Ý nghĩa của PID, PPID và TGID
- 12. Ý nghĩa của% 04X trong C và cách viết giống nhau trong java
- 13. Ý nghĩa của $ (OutDir)
- 14. Ý nghĩa của []
- 15. Ý nghĩa của main_syntax
- 16. Ý nghĩa của Y2K có ý nghĩa gì?
- 17. java this (null)
- 18. Ý nghĩa của [-1,1] [+ !! boolean_var]
- 19. Ý nghĩa của từ khóa 'riêng tư' trong Hợp kim? Ý nghĩa của tuyên bố 'enum'?
- 20. Ý nghĩa của (? S) trong regex
- 21. Ý nghĩa của Giao dịch là gì?
- 22. ý nghĩa của \ x00 \ x04 trong PHP
- 23. ý nghĩa của "this.el" trong $ ('ul', this.el)
- 24. Ý nghĩa của $$ trong Ruby là gì?
- 25. Ý nghĩa của '==' trong C là gì?
- 26. Ý nghĩa của requestCode trong startActivityForResult
- 27. Ý nghĩa của (+) trong truy vấn SQL
- 28. Ý nghĩa của "vùng" trong copyWithZone :?
- 29. ruby: Ý nghĩa của từ khóa "trong"
- 30. Java: không ~ có ý nghĩa gì
Giải thích tuyệt vời! –
Có cách nào tương tự để thực hiện điều này trong C# không? – moorara
@MiladIrannejad Không giống như NestingClass.this. Xem http://stackoverflow.com/a/185144/1986241 – Suzi