我最近在TypeTools中添加了对解析lambda类型参数的支持。例如:
MapFunction<String, Integer> fn = str -> Integer.valueOf(str);Class<?>[] typeArgs = TypeResolver.resolveRawArguments(MapFunction.class, fn.getClass());
解析的类型args符合预期:
assert typeArgs[0] == String.class;assert typeArgs[1] == Integer.class;
注意:基础实现使用@danielbodart概述的ConstantPool方法,该方法已知可在Oracle JDK和OpenJDK上使用。



