Class.getName () 클래스의 이름 만 가져옵니다.


87

수업 이름을 어떻게 알 수 있습니까?

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


나는 마지막 부분에 관심이 있습니다. 즉, String
Any Api 만이 그렇게 할 수 있습니까?


4
Java에는 훌륭한 온라인 문서가 있습니다. 아래에 andyb가 링크 한 페이지는 예입니다. 클래스 또는 패키지에서 사용할 수있는 정확한 기능에 대한 질문이있을 때마다 javadocs는 인터넷 검색 "java 6 <package or class in question>"만큼 쉽게 찾을 수 있습니다.
jpm

답변:


182

9
String.class.getSimpleName ()-> String, 여기서 String.class.getName ()-> java.lang.String
Peter Dietz

감사합니다. @andyb getSimpleName()는 패키지 이름을 뺀 클래스 이름에 더 쉽게 액세스 할 수 있습니다. 구문 : object.getClass().getSimpleName() 샘플 코드
Abhijeet

정적 문자열 변수에 할당하는 방법. 그것은 안드로이드 스튜디오에서 오류를 표시합니다.
MohanRaj S

내부 클래스에서 작동하지 않음 : 패키지뿐만 아니라 둘러싸는 클래스의 이름을 제거합니다.
toolforger

9

아래 두 가지 방법 모두 잘 작동합니다.

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

아래와 같이 출력 :

클래스 이름 : package.Student

간단한 클래스 이름 : 학생


7

또는 프로그래밍 방식

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

1
이것은 내가 내 프레임 워크 ... Tg는에서 getSimpleName ()를 사용하지 못할 나를 도와
사기꾼

1
또한 프로그래밍 방식의 접근 방식은 익명 클래스에 대한 정상적인 결과를 산출합니다.
Hollis Waite

@Imposter Java 1.5 이전 버전을 사용하고 있습니까?
Stealth Rabbi

아니오 .가 발견 되는 경우를 처리해야합니다 .
eckes

@eckes 점이 없으면 결과는 -1이되고 1을 더하면 인덱스 0에서 시작하는 부분 문자열이됩니다.이 경우 정확히 필요한 것입니다. (방금으로 테스트 int[]한 결과는 "[I"입니다.)
toolforger

4

클래스 이름으로 로그를 인쇄하려면 다음과 같은 간단한 기술을 사용할 수 있습니다.

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

메소드에서 다가오는 변수 값을 확인해야한다고 가정하면 다음과 같이 log를 사용할 수 있습니다.

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

이 라인의 중요성은 클래스 이름과 함께 메소드 이름을 확인할 수 있다는 것입니다. 이 유형의 로그를 작성합니다.

write : -loge 및 Enter.

콘솔에 인쇄됩니다

E/MainActivity: printVariable:

2

Social.class.getSimpleName ()

getSimpleName () : 소스 코드에 지정된 기본 클래스의 간단한 이름을 반환합니다. 기본 클래스가 익명 인 경우 빈 문자열을 반환합니다. 배열의 단순 이름은 "[]"가 추가 된 구성 요소 유형의 단순 이름입니다. 특히 구성 요소 유형이 익명 인 배열의 간단한 이름은 "[]"입니다.


1

객체 속성에 액세스하는 Groovy 방법은 다음과 같습니다.

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

-2

경로 대신 간단한 이름을 가져옵니다.

String onlyClassName =  this.getLocalClassName(); 

onCreate에서 위의 메서드 호출


불완전한 솔루션.
PLG

방법에 대한 소스를 제공하지 않으면 OP가 사용할 수 없습니다.
eckes
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.