如果这些字段实际上是某个类的字段,那么您可以通过一些反射得到它们:package test;import java.lang.reflect.Field;import java.lang.reflect.ParameterizedType;import java.util.ArrayList;import java.util.List;
public class Test {
List stringList = new ArrayList();
List integerList = new ArrayList();
public static void main(String... args) throws Exception {
Field stringListField = Test.class.getDeclaredField("stringList");
ParameterizedType stringListType = (ParameterizedType) stringListField.getGenericType();
Class> stringListClass = (Class>) stringListType.getActualTypeArguments()[0];
System.out.println(stringListClass); // class java.lang.String.
Field integerListField = Test.class.getDeclaredField("integerList");
ParameterizedType integerListType = (ParameterizedType) integerListField.getGenericType();
Class> integerListClass = (Class>) integerListType.getActualTypeArguments()[0];
System.out.println(integerListClass); // class java.lang.Integer.
}}
对于参数类型和方法的返回类型,也可以这样做。
但是,如果它们在类/方法的相同范围内,您需要了解它们,那么就没有必要知道它们,因为您已经自己声明了它们。