Java에서 클래스 이름 가져오기
-
Java에서
class.getSimpleName()
을 사용하여 클래스 이름 가져오기 -
getName()
을 사용하여 익명 클래스의 클래스 이름 가져오기 -
Thread.currentThread().getStackTrace()[1].getClassName()
을 사용하여 클래스 이름 가져오기
이 튜토리얼에서는 네 가지 방법을 사용하여 Java에서 클래스 이름을 가져오는 방법을 설명합니다. Java에서 클래스 이름을 얻으려는 경우가 많이 있습니다.
Java에서 class.getSimpleName()
을 사용하여 클래스 이름 가져오기
이것은 클래스 이름을 얻는 데 가장 많이 사용되는 방법입니다. 다음 예제에는 main()
메서드가 있는 GetClassName
과 ExampleClass
라는 두 개의 클래스가 있습니다.
GetClassName
클래스에서 ExampleClass.class
를 사용하여 클래스 정보를 가져옵니다. ExampleClass
유형의 Class
인스턴스를 반환합니다. 이제 클래스 이름만 문자열로 반환하는 classNameInstance
를 사용하여 getSimpleName()
을 호출할 수 있습니다.
public class GetClassName {
public static void main(String[] args) {
Class<ExampleClass> classNameInstance = ExampleClass.class;
String className = classNameInstance.getSimpleName();
System.out.println(className);
}
}
class ExampleClass {
private void exampleFun() {
System.out.println("Just a function in a class");
}
}
출력:
ExampleClass
getName()
을 사용하여 익명 클래스의 클래스 이름 가져오기
이름이 없는 내부 클래스를 익명 클래스라고 합니다. 이 예제에서는 클래스 이름이 익명인 경우 클래스 이름을 가져오는 방법 또는 클래스에 익명 클래스가 있는지 확인하는 방법을 배웁니다. 아래에서 익명 클래스를 인스턴스화하기 위해 Example
인터페이스를 만듭니다. GetClassName
에서 인터페이스를 사용하여 이름 없이 클래스를 인스턴스화하고 printMessage()
함수를 구현합니다.
클래스 이름을 얻기 위해 example.getClass()
를 사용하지만 클래스 이름이 없기 때문에 Class<?>
유형의 인스턴스를 얻습니다. 그런 다음 classNameInstace
를 사용하여 클래스 이름을 반환하는 getName()
을 호출합니다. 출력에서 볼 수 있듯이 익명 클래스를 나타내는 $1
이 추가된 상위 클래스 이름 GetClassName
을 얻습니다.
interface Example {
void printMessage();
}
public class GetClassName {
public static void main(String[] args) {
Example example = new Example() {
@Override
public void printMessage() {
System.out.println("This is an anonymous inner class");
}
};
Class<?> classNameInstance = example.getClass();
String className = classNameInstance.getName();
System.out.println(className);
}
}
출력:
GetClassName$1
Thread.currentThread().getStackTrace()[1].getClassName()
을 사용하여 클래스 이름 가져오기
마지막 예에서는 Thread
클래스를 사용하여 스택 덤프 및 스레드의 모든 호출에 대한 액세스를 제공하는 currentThread()
를 사용하여 현재 실행 중인 스레드를 가져옵니다. getStackTrace()
는 배열의 두 번째 항목을 가져오고 getClassName()
을 호출하여 호출의 클래스 이름을 가져오는 스택 요소의 배열을 반환합니다.
public class GetClassName {
public static void main(String[] args) {
String simpleClassName = Thread.currentThread().getStackTrace()[1].getClassName();
System.out.println("Class name: " + simpleClassName);
}
}
출력:
Class name: GetClassName
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn