Java反射:Method.getGenericXXXXX方法如何工作?

Jas*_*n S 4 java generics reflection

我只是注意到异常类型和参数类型有一Method.getGenericReturnType()对以及Method.getReturnType()类似的对.

我认为Java中的泛型通过类型擦除工作.那么这些方法如何在运行时工作?(以及我在运行时将它们用于什么?)

Boz*_*zho 6

保留具有类型声明(方法,字段,类,参数)的具体类型的泛型.

因此,您可以从此声明中获取类型

 public List<String> toString(List<Foo> foos) { .. }
Run Code Online (Sandbox Code Playgroud)

但你不能从这段代码:

public List<E> transform(List<E> list) {
  // E is not accessible at runtime
}
Run Code Online (Sandbox Code Playgroud)