패키지없이 클래스의 이름을 얻는 방법?


199

C #에서 우리는이 Type.FullName와 Type.Name함께 또는 네임 스페이스 (자바 세계에서 패키지)없이 (이 경우 클래스) 형식의 이름을 얻기를위한.

Java는 무엇입니까 Type.Name?

Class.getName()패키지 이름을 수동으로 사용 하고 제거하는 것보다 더 좋은 방법이 있어야합니다 .


1
나는 이것에 대한 빠른 검색을했고 Google에서 찾은 첫 번째 결과에 감동하지 않았으므로 이것을 공짜로 생각하십시오.
— Ola Herrdahl

5
구글 잊어 버려! 모습에 처음 자바 표준 클래스 라이브러리에 대한 답변은 (JavaDoc을 일명) 자바 API 문서입니다 : java.sun.com/javase/reference/api.jsp
— 스티븐 C

답변:


358

Class.getSimpleName()

소스 코드에 제공된 기본 클래스의 단순 이름을 리턴합니다. 기본 클래스가 익명 인 경우 빈 문자열을 반환합니다.

배열의 단순 이름은 "[]"가 추가 된 구성 요소 유형의 단순 이름입니다. 특히 구성 요소 유형이 익명 인 배열의 단순 이름은 "[]"입니다.

실제로 이름에서 패키지 정보를 제거하지만 숨겨져 있습니다.


또한 익명 클래스의 내부 이름을 빈 문자열에 매핑하고 배열 클래스 이름으로 작업합니다.
— Stephen C

4
빈 문자열을 반환 할 수 있다는 것을 몰랐으며 IMHO는 디자인 결함입니다. 간단한 이름이 없으면 예외가 발생합니다.
— finnw

20

다음 기능은 JDK 버전 1.5 이상에서 작동합니다.

public String getSimpleName()

14

StackTraceElement를 사용하는 경우 다음을 사용하십시오.

String fullClassName = stackTraceElement.getClassName();
String simpleClassName = fullClassName.substring(fullClassName.lastIndexOf('.') + 1);

System.out.println(simpleClassName);
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.