【发布时间】:2012-09-16 17:25:49
【问题描述】:
我正在尝试构建一个类型更安全的替代基础 Java 反射的方法,但遇到了一些问题。我有一个类BoundMethod<T>,它绑定了一个方法和一个对象,因此可以调用该方法并以类型安全的方式返回结果(T 类型)。这涉及将一个类传递给构造函数,并使用该类来转换返回值(即return returnType.cast(method.invoke(object, params)))。
我遇到的问题是,如果我根据方法对象中getReturnType() 的结果自动创建这些对象并且返回类型是原始对象,我会得到一个 ClassCastException,因为你不能动态转换为原始类型。我需要一种替换适当引用类型的方法,但我找不到一种简单的方法。
是否有一些预构建的解决方案,或者我需要自己构建一个?
【问题讨论】:
-
您必须将所有原始类型映射到它们的包装器。例如带有
Map<Class, Class>Refection 库在任何情况下都只使用包装器。
标签: java reflection