Да, это возможно, не делая IntAtom
публичным, хотя это немного хакерски.
Сначала вам нужно получить ссылку на закрытый внутренний класс IntAtom
:
public class SomeClass {
public static final Class<?> INT_ATOM_CLASS;
static {
Class<?> [] innerClasses = Atom.class.getDeclaredClasses();
Class<?> intAtomClass = null;
for (Class<?> klass : innerClasses) {
if (klass.getSimpleName().equals("IntAtom")) {
intAtomClass = klass;
break;
}
}
INT_ATOM_CLASS = intAtomClass;
}
}
Затем выполните проверку экземпляра:
if (SomeClass.INT_ATOM_CLASS.isAssignableFrom(ele.getClass())) {
// do stuff
}
Javadoc для Class.isAssignableFrom (Класс c);