2017-01-17 4 views
0

btrace에서 콜백을 올바르게 설정했습니다. 내 인수 목록에 사용자 지정 Enum 개체가 들어 있습니다. 열거 형 개체가 특정 값과 같으면 무언가를 인쇄하려고합니다. Enum 개체를 직접 비교하거나 해당 Enum 개체의 문자열 표현을 상수 문자열과 비교해도 괜찮습니다.btrace에서 Enum 개체의 값을 비교하고 확인할 수있는 방법은 무엇입니까?

그러나 str() 함수는이 Enum 객체의 문자열 표현을 반환하지 않습니다. $ class @ hash 경로를 되 돌린다.

btrace에서 Enum 개체를 어떻게 비교할 수 있습니까?

감사합니다. Erben

답변

0

답을 찾았습니다. 열거 형의 문자열 표현은이 열거 형 객체의 "이름"필드에 저장됩니다. 따라서 리플렉션을 사용하여 객체에서이 "name"필드의 값을 다음과 같이 가져 오십시오.

private static Field enumNameField = field("java.lang.Enum", "name"); 
String stringRepresentation = (String) get(enumNameField, enumObject);