2013-04-29 41 views
6

Tôi tìm thấy một vài ngày trước, một mã trong Java sử dụng lớp từ khóa trong bối cảnh, ví dụ:Java từ khoá class

MyConcreteClass.class.AMethod(); 

Tôi đã cố gắng để làm điều đó trong một JFrame, ví dụ :

JFrame.class.getName(); 

Và điều đó có tác dụng nhưng ... Tôi không thể tìm/tìm trên internet ý nghĩa của từ khóa này trong ngữ cảnh đó. Tôi chỉ sử dụng nó để khai báo các lớp.

Bất cứ ai có thể giải thích cho tôi những gì lớp có nghĩa là trong ngữ cảnh này?

Cảm ơn,

Trả lời

6

Trong ngữ cảnh này class không phải là một từ khóa, đó là thuộc tính đặc biệt (một "lớp chữ") của một lớp biểu thị thể hiện tương ứng của nó là Class. Ví dụ: để có được đối tượng Class của String, chúng tôi thực hiện điều này: String.class. Giá trị trả lại là phiên bản của Class đại diện cho lớp của String (chú ý việc sử dụng chữ hoa và chữ thường).

Ở đây .class được sử dụng trên lớp thực tế, để có được kết quả tương tự bằng cách sử dụng một trong các trường hợp của chúng tôi, chúng tôi sử dụng phương pháp getclass(). Tiếp tục với ví dụ của chúng tôi, đoạn mã này trả về cùng một phiên bản của Class tương ứng với một số String: "".getClass().

Để làm tròn ý tưởng - đoạn này sẽ luôn luôn trả true, cho bất kỳ lớp học với một trường hợp tương ứng mà bạn muốn kiểm tra:

"".getClass().equals(String.class) 
2

Trong bối cảnh này, class là một phần của một class literal đề cập đến Class đối tượng đại diện cho lớp đó.

1

Sử dụng từ khóa class trong ví dụ của bạn sẽ cung cấp cho bạn một phiên bản đối tượng thuộc loại Class<JFrame>.

1

Khi bạn làm JFrame.class bạn đang nhận được một trường hợp Class<JFrame>, vì vậy bạn có thể gọi phương thức getName.

Chữ lớp cho phép bạn truy cập thông tin về lớp học được đề cập.

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