chỉ nhận được tên của lớp Class.getName ()


87

Làm thế nào tôi có thể lấy tên của lớp học

String.class.getName()  returns java.lang.String


Tôi chỉ quan tâm đến việc nhận được phần cuối cùng tức là chỉ có Chuỗi
Bất kỳ Api nào có thể làm điều đó?


4
Java có tài liệu trực tuyến tuyệt vời. Trang mà andyb liên kết dưới đây là một ví dụ. Bất kỳ lúc nào bạn có câu hỏi liên quan đến chức năng chính xác có sẵn từ một lớp hoặc gói, javadocs sẽ dễ dàng tìm thấy như Google "java 6 <package or class in question>" trên Google.
jpm

Câu trả lời:


182

9
String.class.getSimpleName () -> String, trong đó String.class.getName () -> java.lang.String
Peter Dietz

Cảm ơn bạn, @andyb getSimpleName()dễ dàng truy cập tên lớp hơn trừ tên gói. Cú pháp: object.getClass().getSimpleName() Mã mẫu
Abhijeet

Cách gán nó cho biến chuỗi tĩnh. nó hiển thị một lỗi trong studio android.
MohanRaj S

Không hoạt động đối với các lớp bên trong: Điều này sẽ loại bỏ tên của lớp bao quanh, không chỉ gói.
toolforger

9

Cả hai cách dưới đây đều hoạt động tốt.

System.out.println("The Class Name is: " + this.getClass().getName());
System.out.println("The simple Class Name is: " + this.getClass().getSimpleName());

Đầu ra như sau:

Tên Lớp là: package.Student

Tên lớp đơn giản là: Student


7

hoặc có lập trình

String s = String.class.getName();
s = s.substring(s.lastIndexOf('.') + 1);

1
Điều này đã giúp tôi vì tôi không thể sử dụng getSimpleName () từ khuôn khổ của mình ... Tq
Imposter

1
Ngoài ra, phương pháp lập trình mang lại kết quả tốt cho các lớp ẩn danh.
Hollis Waite

@Imposter bạn đang sử dụng thứ gì đó sớm hơn Java 1.5?
Stealth Rabbi

Bạn cần xử lý trường hợp không .tìm thấy.
eckes

@eckes nếu không tìm thấy dấu chấm, kết quả sẽ là -1, thêm 1 sẽ cung cấp cho bạn một chuỗi con bắt đầu từ chỉ mục 0 - chính xác những gì bạn cần trong trường hợp này. (Tôi vừa thử nghiệm điều đó với int[], kết quả là "[I".)
toolforger

4

Bạn có thể sử dụng kỹ thuật đơn giản sau để in nhật ký với tên lớp.

private String TAG = MainActivity.class.getSimpleName();

Giả sử chúng ta phải kiểm tra giá trị biến sắp tới trong phương thức thì chúng ta có thể sử dụng nhật ký như dưới đây:

private void printVariable(){
Log.e(TAG, "printVariable: ");
}

Điều quan trọng của dòng này là, chúng ta có thể kiểm tra tên phương thức cùng với tên lớp. Để viết loại nhật ký này.

viết: - loge và Enter.

sẽ in trên bảng điều khiển

E/MainActivity: printVariable:

2

Social.class.getSimpleName ()

getSimpleName (): Trả về tên đơn giản của lớp bên dưới như đã cho trong mã nguồn. Trả về một chuỗi trống nếu lớp cơ bản là ẩn danh. Tên đơn giản của mảng là tên đơn giản của kiểu thành phần có thêm "[]". Đặc biệt, tên đơn giản của một mảng có kiểu thành phần là ẩn danh là "[]".


1

Đây là cách Groovy truy cập các thuộc tính đối tượng:

this.class.simpleName    # returns the simple name of the current class

-2

Nhận tên đơn giản thay vì đường dẫn.

String onlyClassName =  this.getLocalClassName(); 

gọi phương thức trên trong onCreate


Giải pháp không đầy đủ.
PLG

Nếu bạn không cung cấp nguồn cho phương thức, OP sẽ không thể sử dụng nó.
eckes
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.