public void setNativeClazz(Class<?> nativeClazz) {
        this.nativeClazz = nativeClazz;

        if (nativeClazz.getAnnotation(Reflection.UseJavaLikeNames.class) != null) {
            useJavaLikeNames = true;
        }

        if (!nativeClazz.isInterface()) {
            try {
                this.nativeConstructor = nativeClazz.getConstructor(Environment.class, ClassEntity.class);
                this.nativeConstructor.setAccessible(true);
            } catch (NoSuchMethodException e) {
                this.nativeConstructor = null;
                //if (IObject.class.isAssignableFrom(getNativeClass().getClass()))
                //  throw new CriticalException(e);
            }

            if (!this.isInternal) {
                try {
                    if (isTrait()) {
                        this.nativeInitEnvironment = nativeClazz.getDeclaredMethod(
                                "__$initEnvironment", Environment.class, String.class
                        );
                    } else {
                        this.nativeInitEnvironment = nativeClazz.getDeclaredMethod(
                                "__$initEnvironment", Environment.class
                        );
                    }
                    this.nativeInitEnvironment.setAccessible(true);
                } catch (NoSuchMethodException e) {
                    this.nativeInitEnvironment = null;
                }
            }
        }
    }
return empty list if success else list with not valid implemented methods in class

@param _interface
@return
jphp-runtime/src/php/runtime/reflection/ClassEntity.java