import com.fasterxml.classmate.ClassMate;
import com.fasterxml.classmate.ResolvedType;
import com.fasterxml.classmate.TypeResolver;
import com.fasterxml.classmate.members.ResolvedField;
import com.fasterxml.classmate.members.ResolvedMethod;
public class ClassMetadataExample {
public static void main(String[] args) {
TypeResolver typeResolver = new TypeResolver();
ResolvedType resolvedType = typeResolver.resolve(MyClass.class);
for (ResolvedField field : resolvedType.getMemberFields()) {
System.out.println("Field: " + field.getRawMember().getName() + ", Type: " +
field.getType().getErasedType().getSimpleName());
}
for (ResolvedMethod method : resolvedType.getMemberMethods()) {
System.out.println("Method: " + method.getRawMember().getName() + ", Return Type: " +
method.getReturnType().getErasedType().getSimpleName());
}
}
}
class MyClass {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
<dependency>
<groupId>com.fasterxml</groupId>
<artifactId>classmate</artifactId>
<version>1.5.1</version>
</dependency>