所以,我想要一个类型列表,然后遍历列表并检查对象是否是该列表中类型的实例。
这就是我想象的它的工作方式,但这不是 Java 语法。 Type1.class 也不起作用
List<Object> types = new ArrayList();
types.add(Type1);
types.add(Type2);
for (Object type : types) {
if (someObject instanceof type) {
doSomething();
}
}
或与 List<Class>
相同或类似的东西
这显然行不通,但我不知道最好的方法是什么。当然,我可以对每个要检查的对象进行硬编码,但这看起来并不那么优雅。
最佳答案
来自 Java 文档:
In Java instances of the
Class
class represent classes and interfaces in a running Java application.
你可以使用 Class::isInstance
方法来确定对象是否是给定类型的实例,然后根据此评估应用处理:
List<Class<?>> types = new ArrayList<>();
types.add(String.class);
types.add(Integer.class);
String someObject = "someString";
for (Class<?> type : types) {
if (type.isInstance(someObject)) {
// do smoething
}
}
关于java - 检查某个对象是否是列表中某个类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56723284/