Thông số receiver
trong Java là gì? Đặc tả ngôn ngữ Java 8 nói về this
.Tại sao chúng ta có thể sử dụng 'this' như một tham số method instance?
Trả lời
Các JLS cho a hint:
Dù bằng cách nào, các thông số nhận tồn tại chỉ cho phép các loại đối tượng đại diện để được biểu thị trong mã nguồn, do đó loại có thể được chú thích.
Hai phương pháp là tương đương:
class Test {
void m1() { }
void m2(Test this) { }
}
Tuy nhiên sau này cho phép bạn thêm chú thích:
void m2(@MyAnnotation Test this) { }
//where MyAnnotation can be defined like this for example:
@Target(ElementType.TYPE_USE) @interface MyAnnotation {}
Một ví dụ khác được đưa ra trong http://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#d5e14278 không có trường hợp kèm theo của loại bên ngoài có sẵn trong khi xây dựng –
thông số Receiver cho phép để vượt qua các đối số và giải nén thêm thông tin từ những lập luận này. Mục đích duy nhất của việc viết người nhận một cách rõ ràng là làm cho nó có thể chú thích loại của người nhận. Bây giờ, nếu bạn triển khai giao diện AnnotatedElement, bạn có thể gọi phương thức getAnnotation() của lớp của bạn để nhận loại chú thích. Để biết thêm thông tin, bạn có thể đọc this.
- 1. this == null bên trong .NET instance method - tại sao điều đó lại có thể?
- 2. Tại sao chúng ta cần phải vượt qua module.exports như một tham số vì chúng ta đã truyền mô-đun như một tham số?
- 3. Tại sao chúng ta sử dụng setLayoutParams?
- 4. Tại sao chúng ta sử dụng Response.ClearHeaders()?
- 5. Tại sao chúng ta cần sử dụng cơ số?
- 6. Tại sao chúng ta sử dụng tf.name_scope()
- 7. Tại sao chúng ta nên sử dụng mã hóa ui khi chúng ta có Specflow?
- 8. tại sao sử dụng Retrofit khi chúng ta có OkHttp
- 9. Tại sao chúng ta không thể sử dụng C-strings như SELs?
- 10. Tại sao nên sử dụng id khi chúng ta có thể sử dụng NSObject?
- 11. Tại sao chúng ta sử dụng radian trong lập trình?
- 12. Tại sao chính xác chúng ta sử dụng NoSQL?
- 13. Tại sao chúng ta không thể sử dụng '==' để so sánh hai phao hoặc số đôi
- 14. Tại sao chúng ta sử dụng động Proxy
- 15. Tại sao chúng ta có thể sử dụng `std :: move` trên đối tượng` const`?
- 16. Tại sao chúng ta sử dụng giao diện thành viên?
- 17. tại sao chúng ta không nên sử dụng ++ trong javascript?
- 18. Tại sao chúng ta sử dụng @Embeddable In Hibernate
- 19. Tại sao chúng ta sử dụng chú thích ngủ đông?
- 20. Tại sao chúng ta có thể bỏ sockaddr vào sockaddr_in
- 21. Các loại bảng do người dùng định nghĩa SQL: Tại sao chúng ta có thể thả chúng nếu không được sử dụng làm tham số?
- 22. Tại sao Rails Controller Action Method Yêu cầu tham số
- 23. Tại sao chúng ta cần tham số Kiểu từ trong CanBuildFrom
- 24. Tại sao chúng ta cần "var self = this" trong các lớp trong Javascript?
- 25. MVC: tại sao chúng ta cần "điều khiển", hoặc khi nào chúng ta nên sử dụng mẫu này?
- 26. Tại sao chúng ta cần strdup()?
- 27. Tại sao chúng ta viết cửa sổ.?
- 28. Tại sao chúng ta cần JWT khi chúng ta có phiên khách hàng?
- 29. Nếu chúng ta polyfill fn.bind() trong JavaScript, tại sao bạn phải kiểm tra loại "this"?
- 30. Tại sao tôi phải sử dụng $ (this)?
Chỉ tìm thấy nó trong http://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.4.1. Nó không rõ ràng những gì OP cần nhiều hơn JLS nói mặc dù ... bất kỳ câu trả lời có khả năng chỉ cần reword đó. –
[Từ JLS] (http://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.4.1), đó có phải là thông số chính thức không? Hay tôi hiểu nhầm? – Christian
Tôi muốn nói câu hỏi là khá rõ ràng. – olovb