public Type getGenericSuperclass() { if (type.isArrayType()) { return Object.class; } else if (type.isPrimitiveType() || type.isUnboxedType() || (type.isClassType() && type.asClass().isInterface()) || this == Object.class) { return null; } else { RVMClass klass = type.asClass(); Atom sig = klass.getSignature(); if (sig == null) { return getSuperclass(); } else { return JikesRVMHelpers.getSuperclassType(this, sig); } } }