Does Java have an “is kind of class” test method
if(object instanceof WhereStatement) { WhereStatement where = (WhereStatement) object; doSomething(where); } Note that code like this usually means that your base class is missing a polymorphic method. i.e. doSomething() should be a method of Statement, possibly abstract, that is overridden by sub-classes.