2011-03-10 30 views
7

Khi trả lời các câu hỏi, tôi tự đề cập đến tên phương thức và tài liệu trực tuyến thường xuyên. Tôi đang bối rối về cách tên phương pháp nên được tham chiếu trong văn bản.Cách chính xác để tham khảo các thành viên Java trong văn bản là gì?

Ví dụ tôi thường gõ:

Người ta phải sử dụng String.equals() cho so sánh hai chuỗi sự bình đẳng.

Tuy nhiên, đây là một chút sai lệch:

  1. Nó làm cho equals() xuất hiện là một thành viên tĩnh.
  2. Nó làm cho equals() xuất hiện để không nhận bất kỳ đối số nào.

Trong sự quan tâm của compleness, tôi muốn biết:

cách chính xác để tham khảo cả các thành viên tĩnh và các thành viên dụ là gì?

Tôi đã nhìn thấy những thứ như:

  • String.equals()
  • String # equals()
  • myString.equals()

Có cách nào để đề cập đến các phương pháp theo cách đối lập-thuyết bất khả tri?

Ví dụ: trong C foo(void) rõ ràng là hàm 0 đối số và foo() có thể được định nghĩa lại sau để có một bộ đối số khác. (?)

Trả lời

4

Nếu bạn muốn được thực sự là chính xác mà bạn có thể sử dụng

java.lang.String#equals(java.lang.Object) 

hoặc các hình thức ngắn

String#equals(Object) 

này tương tự với ký hiệu được sử dụng trong javadoc và thú vị cũng trông tương tự để liên kết đến các tài liệu mà kết thúc với:

String.html#equals(java.lang.Object) 

Edit: Dưới đây là một liên kết đến javadoc documentation mô tả làm thế nào để sử dụng tài liệu tham khảo.

+0

Có một dạng lập luận bất khả tri không? –

+2

Nếu chỉ có một phương pháp của tên đó, tất nhiên bạn có thể bỏ qua kiểu tham số. Sau khi tất cả, đây là một quy ước đặt tên, không phải là một quy tắc cứng. –

+0

Nó không phải là một quy ước được sử dụng trong tài liệu API do JavaDoc tạo. –

2

Tôi đã tìm thấy liên kết tới tài liệu về phương pháp equals của String loại bỏ sự mơ hồ.

+0

hmm, tôi nghĩ rằng mặc dù chúng tôi có thể giới thiệu chính xác cho các thành viên mà không có liên kết đến tài liệu –

+0

@Matthew: Tại sao bạn muốn làm điều đó? Bạn đang trên Web. Siêu liên kết là cách được chấp nhận để tham chiếu đến một tài nguyên khác. Liên kết với nó một lần, và bất kỳ đề cập tiếp theo của nó phải được rõ ràng. –

+1

Vâng, tôi không thực sự muốn siêu liên kết đến String # bằng (Object) mọi lúc. Tôi chỉ muốn đề cập đến nó. Giả vờ rằng nó không phải là trọng tâm của câu trả lời, mà chỉ là một phương pháp phụ. –

1

Tôi thường tham chiếu tên lớp và phương thức, với kỳ vọng mà người đọc có thể sử dụng để theo dõi tài liệu. Có lẽ đó là một chút kiêu ngạo. Tôi không biết.

Nếu tôi đang cố gắng đưa ra một điểm về việc chữ ký của một phương thức để sử dụng, tôi thường sẽ cung cấp mã mẫu. Điều này chủ yếu là vì tôi thấy nó dễ dàng hơn việc viết ra mô tả dài tay.

2

Sử dụng myString.equals() không có ý nghĩa trừ khi bạn nói rõ ràng rằng myString là một thể hiện của String. javadoc sử dụng String # equals() để hầu hết các nhà phát triển có thể đọc và dễ hiểu. Đây sẽ là lựa chọn của tôi.

+0

Tôi cũng quan tâm đến (loại bỏ) hàm ý bởi String # equals() rằng nó là một phương thức zero-argument. –

+1

Bạn có thể viết "phương thức' String # equals' - bỏ qua các dấu ngoặc và thêm từ "phương thức" - để chỉ ra một tham chiếu không xác định đối với một số phương thức (có thể là một số) có tên 'bằng' trong Lớp 'String'. –

1

myString.equals() là hoàn hảo. Nó ngụ ý loại và làm rõ rằng chúng ta đang nói về một thể hiện.

Bạn thậm chí có thể thêm:

myString.equals(aString)

+0

Tôi cảm thấy như đây là cách tốt nhất để đưa ra một ví dụ cho người mới bắt đầu. –

2

String.equals.

Nếu bạn muốn cung cấp loại đối số String.equals(Object).

Việc thêm dấu ngoặc đơn (equals()) là điều C. Đặc biệt là một điều ANSI C, trong đó hàm no-args sẽ được viết là tostring(void) (Tôi thực sự còn quá trẻ (!) Để nhớ K & R/PCC C). C++ cố định điều đó - vì vậy, () thực sự là một trường khá cũ.

+0

Một lần nữa, điều này dường như ngụ ý rằng bằng là một thành viên tĩnh, phải không? –

+0

'.' được sử dụng để đánh giá tên trong Java. Đây là "tên đủ điều kiện". Trong thực tế, nó xuất hiện như một dấu chấm trong dấu vết ngăn xếp. –

0

Khi đề cập đến một phương pháp, tôi sử dụng "String.equals()". Điều này là dành cho độc giả của con người, và họ có thể biết những gì bạn đang nói về từ ngữ cảnh. Trong trường hợp nó có thể trở thành khó hiểu, chỉ cần nói "phương pháp String.equals()"

One should use String.equals() for comparing two strings for equality. 

Nghiêm túc, ai sẽ bao giờ bị nhầm lẫn bởi câu này? Vì vậy, đừng lo lắng. Nó chỉ là tiếng Anh, không có trình biên dịch la hét với bạn.

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