【发布时间】:2017-03-24 09:52:32
【问题描述】:
有没有办法将泛型类型的方法作为参数传递? 我试图实现的是这样的:
ListUtils.mapObjectToField( entries, Contact.getZipCode );
我传递了一个List<T> 和一个来自泛型类T 的方法。
到目前为止,我对通用 List 很好,但我无法实现方法调用。
public static <T, U> List<U> mapObjectToField( List<T>elements, /*generic method*/ )
{
List<U> result = new ArrayList<>();
for ( T current : elements )
{
result.add(current./*generic method*/);
}
return result;
}
没有 Java 8,因为我正在为 Android min SDK 14 编码。
【问题讨论】:
-
如果您将方法的名称作为字符串传递,您可以使用反射来实现,但它不会很漂亮。
-
当你实现要在别处执行的实际代码时,你为什么需要这个方法呢?
-
我建议你看看 java.util.function.Function
它几乎可以满足你的需求。
标签: java android list generics reflection