【发布时间】:2019-06-23 11:10:34
【问题描述】:
所以,我想要一个类型列表,然后循环遍历列表并检查对象是否是该列表中类型的实例。
这就是我想象的工作方式,但这不是 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> 或类似的东西相同
这显然不起作用,但我不知道最好的方法是什么。当然,我可以硬编码每个我想检查的对象,但这似乎不是那么优雅。
【问题讨论】:
-
为什么你的类型列表是
Object而不是Class?Class有一个isInstance方法,它与instanceof完全一样。 -
这种结构几乎总是带有“代码味道”,而且通常有更好、更简洁的方法来实现您想要的最终结果。您可能希望更多地了解此最终结果的细节,而不是您尝试如何实现它。
标签: java