/** * Returns the {@code MetaClass} for the {@code Class} associated with this {@code ClassInfo}. * If no {@code MetaClass} exists one will be created. * <p> * It is not safe to call this method without a {@code Class} associated with this {@code ClassInfo}. * It is advisable to aways retrieve a ClassInfo instance from the cache by using the static * factory method {@link ClassInfo#getClassInfo(Class)} to ensure the referenced Class is * strongly reachable. * * @return a {@code MetaClass} instance */ public final MetaClass getMetaClass() { MetaClass answer = getMetaClassForClass(); if (answer != null) return answer; lock(); try { return getMetaClassUnderLock(); } finally { unlock(); } }
public MetaClass getMetaClass(Object obj) { final MetaClass instanceMetaClass = getPerInstanceMetaClass(obj); if (instanceMetaClass != null) return instanceMetaClass; lock(); try { return getMetaClassUnderLock(); } finally { unlock(); } }
public final MetaClass getMetaClass() { MetaClass answer = getMetaClassForClass(); if (answer != null) return answer; lock(); try { return getMetaClassUnderLock(); } finally { unlock(); } }
public final MetaClass getMetaClass() { MetaClass answer = getMetaClassForClass(); if (answer != null) return answer; lock(); try { return getMetaClassUnderLock(); } finally { unlock(); } }
public MetaClass getMetaClass(Object obj) { final MetaClass instanceMetaClass = getPerInstanceMetaClass(obj); if (instanceMetaClass != null) return instanceMetaClass; lock(); try { return getMetaClassUnderLock(); } finally { unlock(); } }
public MetaClass getMetaClass(Object obj) { final MetaClass instanceMetaClass = getPerInstanceMetaClass(obj); if (instanceMetaClass != null) return instanceMetaClass; lock(); try { return getMetaClassUnderLock(); } finally { unlock(); } }
public final MetaClass getMetaClass() { MetaClass answer = getMetaClassForClass(); if (answer != null) return answer; lock(); try { return getMetaClassUnderLock(); } finally { unlock(); } }