@SuppressWarnings("unchecked")
    public static int getSavableVersion(Class<? extends Savable> clazz) throws IOException {
        try {
            Field field = clazz.getField("SAVABLE_VERSION");
            Class<? extends Savable> declaringClass = (Class<? extends Savable>) field.getDeclaringClass();
            if (declaringClass == clazz) {
                return field.getInt(null);
            } else {
                return 0; // This class doesn't declare this field, e.g. version == 0
            }
        } catch (IllegalAccessException ex) {
            IOException ioEx = new IOException();
            ioEx.initCause(ex);
            throw ioEx;
        } catch (IllegalArgumentException ex) {
            throw ex; // can happen if SAVABLE_VERSION is not static
        } catch (NoSuchFieldException ex) {
            return 0; // not using versions
        }
    }
A private constructor to inhibit instantiation of this class.
jme3-core/src/main/java/com/jme3/export/SavableClassUtil.java