gpt4 book ai didi

Java 对象本身在数组中

转载 作者:行者123 更新时间:2023-12-01 18:22:38 26 4
gpt4 key购买 nike

我想将“对象”保存在数组中。我不想将“new Object()”保存在数组中。

为什么?我有 3 个大的 If 语句,我检查一个实例是否是 SomeClass 的实例,例如

if (x instanceof String) {
SomeMethod(x, String);
}

我计划类似:

Class<?>[] classes = {Object, String, SomeOtherClass};
for (int i = 0; i < 3; i++) {
if (x instanceof classes [i]) {
SomeMethod(x, classes [i]);
}
}

但是这是有效的

Class<?>[] classes = {Object.class, String.class, SomeOtherClass.class};

但是我不能再使用instanceof了。

有什么建议吗?

P.S:在搜索这个时,我只找到了如何在数组中保存类的实例,而不是类本身......

编辑:在 SomeMethod 的位置,我想使用基于类的通用类型(ObjectString)。这不适用于 Object.classString.class

最佳答案

使用

if (x.getClass() == classes[i]) {

而不是 instanceof

但请注意,任何使用这些技术的代码从一开始就是可疑的,可能需要重构。为什么要以不知道对象类型的方式存储对象?

关于Java 对象本身在数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27230602/

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