我想编写一个方法,该方法将返回任何类型的 java.util.List
无需进行任何类型转换:
List<User> users = magicalListGetter(User.class);
List<Vehicle> vehicles = magicalListGetter(Vehicle.class);
List<String> strings = magicalListGetter(String.class);
方法签名是什么样的?可能是这样的(?):
public List<<?> ?> magicalListGetter(Class<?> clazz) {
List<?> list = doMagicalVooDooHere();
return list;
}
最佳答案
private Object actuallyT;
public <T> List<T> magicalListGetter(Class<T> klazz) {
List<T> list = new ArrayList<>();
list.add(klazz.cast(actuallyT));
try {
list.add(klazz.getConstructor().newInstance()); // If default constructor
} ...
return list;
}
也可以为方法提供泛型类型参数。您已经正确推断出需要正确的类实例来创建事物 (klazz.getConstructor().newInstance()
)。
关于java - 如何让 Java 方法返回任何类型的通用列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17840483/