gpt4 book ai didi

java - 查找给定原始类的引用类

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:55:55 24 4
gpt4 key购买 nike

我正在尝试构建一个类型更安全的替代方案来替代基本 Java 反射,但遇到了一些问题。我有一节课BoundMethod<T>它绑定(bind)了一个方法和一个对象,因此可以调用该方法并以类型安全的方式返回结果(T 类型)。这涉及将一个类传递给构造函数,并使用该类来转换返回值(即 return returnType.cast(method.invoke(object, params)) )。

我遇到的问题是,如果我根据 getReturnType() 的结果自动创建这些对象在方法对象中,返回类型是原始对象,我得到一个 ClassCastException,因为你不能动态转换为原始类型。我需要一种方法来替换适当的引用类型,但我找不到一种简单的方法来执行此操作。

是否有一些预构建的解决方案,还是我需要自己构建一个?

最佳答案

检查 returnType 并查看它是否是原语:

returnType.isPrimitive();

如果是,get its wrapper class .

不幸的是,这会让您对值进行自动装箱,但这正是您混合泛型和原语时发生的情况。

关于java - 查找给定原始类的引用类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12445718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com