从Java反射中获取"genericInfo"方法的步骤如下:
Class.forName()
方法传入目标类的全限定名,或者直接使用目标类.class
获取。getMethod()
方法,传入方法名和参数类型,可以获取到目标方法的Method对象。getGenericReturnType()
方法可以获取方法的返回值的泛型信息,通过调用getGenericParameterTypes()
方法可以获取方法的参数类型的泛型信息。Type
接口及其实现类进行解析,如ParameterizedType
、TypeVariable
、WildcardType
等。以下是一个示例代码,演示如何从Java反射中获取"genericInfo"方法的泛型信息:
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
public class ReflectionExample {
public static void main(String[] args) throws NoSuchMethodException {
Class<?> targetClass = TargetClass.class;
Method method = targetClass.getMethod("genericInfo");
Type returnType = method.getGenericReturnType();
if (returnType instanceof ParameterizedType) {
ParameterizedType parameterizedType = (ParameterizedType) returnType;
Type[] actualTypeArguments = parameterizedType.getActualTypeArguments();
for (Type typeArgument : actualTypeArguments) {
System.out.println("Generic type: " + typeArgument.getTypeName());
}
}
}
}
class TargetClass {
public List<String> genericInfo() {
return new ArrayList<>();
}
}
以上代码中,我们通过getMethod()
方法获取到了"genericInfo"方法的Method对象,然后通过getGenericReturnType()
方法获取到了方法的返回值的泛型信息。接着,我们判断返回值的类型是否为ParameterizedType,如果是,则通过getActualTypeArguments()
方法获取到具体的泛型类型。最后,我们打印出了泛型类型的名称。
请注意,以上示例代码仅为演示目的,实际应用中可能需要根据具体情况进行适当的异常处理和错误检查。
云+社区技术沙龙[第10期]
云+社区技术沙龙[第21期]
云+社区技术沙龙[第11期]
云+社区技术沙龙 [第30期]
Elastic 中国开发者大会
高校公开课
北极星训练营
云+社区技术沙龙[第3期]
领取专属 10元无门槛券
手把手带您无忧上云