java - Java有 "is kind of class"的测试方法吗

标签 java reflection inheritance evaluation

我有一个基类 Statement,其他几个类都继承自它,命名为 IfStatementWhereStatement 等...在 if 语句中执行测试以确定实例派生自哪一种 Statement 类的最佳方法?

最佳答案

if(object instanceof WhereStatement) {
   WhereStatement where = (WhereStatement) object;
   doSomething(where);
}

请注意,这样的代码通常意味着您的基类缺少多态方法。即 doSomething() 应该是 Statement 的方法,可能是抽象的,被子类覆盖。

关于java - Java有 "is kind of class"的测试方法吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/928531/

相关文章:

java - 可检查的GridView

java - 在android中从arraylist创建按钮的新 View

java - 如何在 Java/Scala 中动态、递归地修饰一个类?

java - 给定一个堆栈,其中包含多个类的对象,如何管理弹出的对象?

objective-c - 如何将 'Class A' 转换为其子类 'Class B' - Objective-C

java - JPopupMenu 在鼠标输入时消失

javax.naming.NameNotFoundException : fsmDS not bound

java - 如何访问 Java 方面中指定的参数?

c# - 在程序集中搜索类型

java - 避免在不同上下文中多次实现同一方法