gpt4 book ai didi

java - 动态查找表示原始 Java 类型的类

转载 作者:IT老高 更新时间:2023-10-28 20:36:19 30 4
gpt4 key购买 nike

我需要在 Java 中进行一些反射方法调用。这些调用将包括具有原始类型(int、double 等)参数的方法。反射性查找方法时指定此类类型的方式有 int.class、double.class 等。

挑战在于我正在接受来自外部源的输入,该源将动态指定类型。因此,我还需要动态地提出这些类引用。想象一个带有参数类型列表的方法名称列表的分隔文件:

doSomething int double
doSomethingElse java.lang.String boolean

如果输入类似于 java.lang.String,我知道我可以对那个 Class 实例使用 Class.forName("java.lang.String")背部。有什么方法可以使用该方法或其他方法来获取原始类型 Classes 吗?

编辑:感谢所有的受访者。似乎没有内置的方法可以干净地做我想做的事,所以我将满足于重用 Spring 框架中的 ClassUtils 类。它似乎包含 Class.forName() 的替代品,可以满足我的要求。

最佳答案

原始类型的 Class 实例可以按照您所说的使用例如int.class,但也可以使用 Integer.TYPE 之类的东西获得相同的值。每个原始包装类都包含一个静态字段 TYPE,该字段具有相应的原始类实例。

您无法通过 forName 获得原始类,但您可以从现成的类中获得它。如果你绝对必须使用反射,你可以试试这样:

Class clazz = Class.forName("java.lang.Integer");
Class intClass = clazz.getField("TYPE").get(null);

intClass.equals(int.class); // => true

关于java - 动态查找表示原始 Java 类型的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/180097/

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