Khi viết về các phương thức trong Java (tức là trong diễn đàn, danh sách gửi thư, trình theo dõi vấn đề, v.v.) nhiều người tách tên phương thức khỏi tên lớp bằng ký hiệu '#' thay vì toán tử .
của Java; ví dụ: mọi người tham khảo Object#toString
thay vì Object.toString
. Cú pháp này xuất phát từ đâu?Tại sao một số người sử dụng phương pháp Class # thay vì Class.method trong thư từ?
Trả lời
Đó là ký hiệu được sử dụng trong nhận xét javadoc khi liên kết đến phương thức của lớp khác.
EDIT
Để thu thập thông tin bổ sung được cung cấp trong nhận xét:
- @Hugo lưu ý rằng các
#
ký hiệu lần lượt xuất phát từ HTML neo - @maksimov chỉ ra rằng
Object.method
là cú pháp Java để gọi các phương pháp tĩnh, có thể gây hiểu nhầm
CẬP NHẬT
Java 8 mang cú pháp mới cho các tham chiếu phương thức, mà bây giờ dường như trở nên phổ biến hơn - vì vậy Object#toString
có xu hướng được viết Object::toString
.
Điều này, đến lượt nó, xuất phát từ HTML Anchors, được biểu diễn bằng cách sử dụng ký hiệu này, vì mỗi phương thức là một neo nếu javadoc HTML được tạo ra. – WhyNotHugo
tất cả đều có ý nghĩa. Tôi có thể bắt đầu sử dụng nó ngay bây giờ, nhưng tôi phải thừa nhận nó khá xấu xí và tôi thấy khó đọc hơn. Nhưng nó cung cấp sự định hướng trong trường hợp các lời gọi phương thức tĩnh. –
Nhưng nếu Object là chữ thường thì sao? –
- 1. Tại sao sử dụng singleton thay vì phương pháp tĩnh?
- 2. Phương pháp Varargs thay đổi mảng của người gọi thay vì bản sao của riêng nó?
- 3. Javascript TRUE và "true" tại sao một người nào đó sử dụng chuỗi thay vì boolean?
- 4. Tại sao một người sử dụng REST thay vì các dịch vụ dựa trên SOAP?
- 5. Tại sao nên sử dụng Function.prototype.bind thay vì Function.prototype.call?
- 6. Làm thế nào để buộc sử dụng phương pháp mở rộng thay vì phương pháp dụ với thông số?
- 7. Tại sao sử dụng tăng :: ice_or thay vì || và tăng :: ice_and thay vì && trong enable_if?
- 8. Sử dụng phương pháp __call__ của metaclass thay vì __new__?
- 9. Tại sao sử dụng phương pháp Monte-Carlo?
- 10. Tại sao sử dụng jQuery trên() thay vì nhấp chuột()
- 11. Tại sao sử dụng registerDefaults: thay vì setValue: forKey :?
- 12. Tại sao sử dụng Enums thay vì Constants?
- 13. Tại sao lại sử dụng NSFileManager thay vì chỉ sử dụng phương thức writeToFile của NSData: phương pháp: khi tạo một tệp mới?
- 14. Tại sao mọi người liên tục khuyên bạn nên sử dụng appConfig thay vì sử dụng tệp Cài đặt? (.NET)
- 15. Tại sao một số trang web sử dụng jquery với $ j thay vì chỉ là $?
- 16. Tại sao sử dụng char [] thay vì String?
- 17. Tại sao RTP sử dụng UDP thay vì TCP?
- 18. Tại sao sử dụng var thay vì tên lớp?
- 19. Tại sao mọi người sử dụng i = i + 1 thay vì i + +?
- 20. Tại sao UnderscoreJS sử dụng toString.call() thay vì typeof?
- 21. Tại sao sử dụng sự kiện tùy chỉnh thay vì gọi phương thức trực tiếp?
- 22. Android: tại sao phải sử dụng getBaseContext() thay vì
- 23. Tại sao sử dụng ROLAP thay vì MySQL đơn giản?
- 24. tại sao nó sử dụng movl thay vì đẩy?
- 25. Tại sao sử dụng Celery thay vì RabbitMQ?
- 26. Tại sao chọn SCOPE_IDENTITY() trả lại một số thập phân thay vì một số nguyên?
- 27. Tại sao sử dụng các phương thức HTTP PUT và DELETE thay vì POST?
- 28. Tại sao sử dụng tai thay vì chiến tranh?
- 29. Tại sao sử dụng phương thức khởi tạo thay vì hàm tạo?
- 30. Tại sao sử dụng singleton thay vì lớp tĩnh?
Ký hiệu dấu chấm có thể được xem là mã, trong đó trong Object.toString 'Object' sẽ là một cá thể hoặc ngược lại' toString' sẽ là một phương thức tĩnh. Ký hiệu dấu gạch ngang là Javadoc và như vậy là rõ ràng. – maksimov