gpt4 book ai didi

java - 基于类型签名创建 Class 对象

转载 作者:行者123 更新时间:2023-12-04 06:56:52 25 4
gpt4 key购买 nike

Class.forName(boolean.class.getName());

这在 Java 中不起作用 - 虚拟机用 ClassNotFoundException 打你。我需要类似的东西,因为我想反射(reflect)基于包含方法签名的字符串的方法,比如
public void doSomething(boolean yesWeCan, java.lang.String[] presidents);

最后,我想出了一个自定义的“ClassFactory”,它将字符串类型转换为类对象。这个工厂包括许多原始和数组类型值的处理程序。

数组类型对象的处理程序类似于:
if (isArrayOfObjects) {
return Class.forName("L["+typeName.replace("[]", "")+";");
}

我的问题是 - 我是否错过了 Java 1.5+ API 中可能有用的东西?

编辑

感谢您的回答, Class.forName 并不奇怪与包装类一起工作得很好。但我正在寻找适用于所有 java 类型的解决方案,包括数组和原语。因此,我的第一行不是错字。一些方法签名确实有 java 原语作为参数,我不能只使用包装类来反射(reflect)库中的方法,我真的需要该类型的 Class 对象(如 boolean 值)。
Class<boolean> booleanClassObject = boolean.class;

工作正常,以及
String name = boolean.class.getName();

最佳答案

也许你有多个if s:

if (type.equals("boolean")) {
return boolean.class;
} else if (type.equals("int")) {
return int.class;
} .. etc

关于java - 基于类型签名创建 Class 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2461635/

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