내가 할 일은 할 수 있으며, 현재 모든 자바 클래스 이름을 $1 내 클래스 이름 끝에 쓸모없는 첨부됩니다 무의미 한 말. 실제 클래스 이름 없애는 것이 유일한 반품하십시오 어떻게 해야 할까요?
String className = this.getClass().getName();
이 $1" "; 쓸모없는 non-sense" " 없습니다;;). 많은 경우 익명 클래스는 붙습니다.
그러나 그 자체를 don& 경우, t # 39 다운로드하려는 클래스용 클래스용 선언 후 제니클로싱클레스 () '' 사용할 수 있습니다. 예를 들면 다음과 같습니다.
Class<?> enclosingClass = getClass().getEnclosingClass();
if (enclosingClass != null) {
System.out.println(enclosingClass.getName());
} else {
System.out.println(getClass().getName());
}
그 어떤 방법을 정적임 유틸리티에는 이동할 수 있습니다.
하지만 이는 현재 클래스 이름이 아니다. 다른 제품보다 익명 클래스는 클래스 클래스용 에워싼다. 이 사건은 내부 클래스뿐만 비슷하다.
이를 통해 시도하시겠습니까 ' ()' 또는 '티s.제클레스 그제심렌임 그제카노니카르나미 티s.제클레스 () () ()'. # 39, s 클래스를 사용할 경우 it& 티s.제클레스 그제스페르클레스 이제나미 () ',' 익명의 () ()
그래서 그제심렌임 () ',' () 와 같은 티s.제클레스 사용할 수 있습니다.
import java.lang.reflect.Field;
public class Test {
int x;
int y;
public void getClassName() {
String className = this.getClass().getSimpleName();
System.out.println("Name:" + className);
}
public void getAttributes() {
Field[] attributes = this.getClass().getDeclaredFields();
for(int i = 0; i < attributes.length; i++) {
System.out.println("Declared Fields" + attributes[i]);
}
}
public static void main(String args[]) {
Test t = new Test();
t.getClassName();
t.getAttributes();
}
}
이 두 가지의 조합 분입니다. 또한 인쇄 메서드입니다 이름:
Class thisClass = new Object(){}.getClass();
String className = thisClass.getEnclosingClass().getSimpleName();
String methodName = thisClass.getEnclosingMethod().getName();
Log.d("app", className + ":" + methodName);
이 말에 답이 있다 하지만 난 또 다른 방법으로 이 문맥에서 익명 처리기에서 구분된다.
class A {
void foo() {
obj.addHandler(new Handler() {
void bar() {
String className=A.this.getClass().getName();
// ...
}
});
}
}
동일한 결과를 얻을 것으로 보인다. 또한 it& # 39 에 정의된 모든 클래스는 컴파일 타임에 이후 실제로 매우 편리하게 사용할 수 있기 때문에 동성 손상되었습니다.
이 수업은 정말 경우, 예를 들어 'A' 실제로 네스트된 것 위에 묶인, 클래스 B 의 'B' 로 알려진 간편하게 사용할 수 있습니다.
B.this.getClass().getName()
이 " cleaner"; 방법은 원하는 이름을 입니다.
클래스는 클래스 () ',' 익명의 경우 내부 제스페르클레스 만든 클래스를 줘야 할 수 있습니다. # 39 에서 작성한 경우, re sort SOL 때문에 보다 인터페이스입니다 you& 최선인가 () '는' 제인터파시오스 제공하십시오 수 있는 둘 이상의 인터페이스입니다.
이 " hacky"; 그냥 이름 ' ()' 와 함께 사용하는 방법은 내려받습니다 제클레스나미 드롭합니다 regex 를 '$1'.
[ 반사 api ] (https://docs.oracle.com/javase/tutorial/reflect/class/classNew.html)
>. 하지만 이런 클래스뿐만 반품하십시오 여러 가지가 있을 수 있는 api 를 반사 >. 이미 받은 경우 직접 이벤트여야만 액세스되는 클래스 >. 또는 된다. >. >. >. >. 클레스트제스페르클레스 () >. Super class 를 되돌려줍니다 해당 클래스. >. >. Class c = 자바스.s 윙.j버튼.클레스트제스페르클레스 (); >. 상위 수준의 자바스.s 윙.j버튼 자바스.s 윙스베스트라스버트런드 있다. >. >. 클레스트제클라시스 () >. >. 공용 클래스, 인터페이스 및 이넘 구성하는 모든 되돌려줍니다 >. 등 상속됨 클래스의 멤버. >. >. [] (), C = 차라스트리클레스트제클라시스 class< >;? >. >. 문자 클래스 멤버 및 커랙터.서브스트 두 개가 들어 있다. >. 커랙테리오니고데브록스 >. >. 클레스트제데클래드클라시스 () >. 그리고 이 클래스에서 선언된 명시적으로 않는비즈니스 이넘 인터페이스와도 모든 클래스를 반환합니다. >. >. [] (), C = 차라스트리클레스트제데클래드클라시스 class< >;? >. 문자 클래스 커랙터.서브스트 공개 회원 및 커랙테리오니고데브록 및 원-부트 보면안돼 클래스 두 개가 들어 있다. >. 커랙터스커랙터카시오 >. >. 클레스트제데클링클레스 () >. 자바드랑이어플라치스필드.제데클링클레스 () >. 자바드랑이어플라치스메토d.제데클링클레스 () >. 자바드랑이어플라치스컨스트러스이제데클링클레스 () >. 이러한 명이 있는 클래스용 되돌려줍니다 선언했다. 익명 클래스를 선언하는 클래스용 선언이 갖고 있지 않지만, >. 클래스를 가지고 에워싼다. >. >. 가져오기의 자바드랑이어플라치스필드. >. >. F = 시스템.클레스트제필드 필드 (out" ";). >. Class c = f.제데클링클레스 (); >. 필드 아웃해야 선언될 시스템. >. public class MyClass { >. 정적 객체 o = 새로운 객체 () { >. public void m () {} >. }; >. 정적 Class< c>; = 오제클레스 오게텐클로싱클레스 () (); >. } >. >. 이 익명 클래스를 선언하는 클래스에 정의한 o 널임. >. >. 크리스트가텐클로싱클레스 () >. 바로 되돌려줍니다 클래스의 클래스용 에워싼다. >. >. Class c = 트레더릭국가리클레스 오게텐클로싱클레스 () (); >. 이 클래스의 에워싼다 이넘 트레더릭국가 는 어떨까. >. >. public class MyClass { >. 정적 객체 o = 새로운 객체 () { >. public void m () {} >. }; >. 정적 Class< c>; = 오제클레스 오게텐클로싱클레스 () (); >. } >. 익명 클래스가 MyClass 둘러싸인 의해 정의된 o 는.
그러나 이 i& # 39, ve com/downloads/global/corporate/iar/esg_prosupport. 일하고 싶은 내 코드, 내 코드 내에서 어레이에서는 루프지 위한 클래스 아웃해야 있습니다.
String className="";
className = list[i].getClass().getCanonicalName();
System.out.print(className); //Use this to test it works
안녕하세요 안녕하슈 > < -;;!