public class GenericClass<T> {
@GenericType
private T genericField;
@GenericReturnType
public T genericMethod() {
return genericField;
}
}
public class Main {
public static void main(String[] args) {
GenericClass<String> genericClass = new GenericClass<>();
GenTyRef.extractTypeInformation(genericClass);
Class<?> fieldType = GenTyRef.getType(GenericClass.class, "genericField");
System.out.println("Field type: " + fieldType);
Class<?> returnType = GenTyRef.getReturnType(GenericClass.class, "genericMethod");
System.out.println("Return type: " + returnType);
}
}
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>com.github.dkorotych</groupId>
<artifactId>gentyref-processor</artifactId>
<version>2.1.0</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>