def initialize(self, jenv: jni.JNIEnv): with JFrame(jenv, 2): jcls = jenv.FindClass(b"java/lang/Integer") TYPE = jenv.GetStaticObjectField( jcls, jenv.GetStaticFieldID(jcls, b"TYPE", b"Ljava/lang/Class;")) self.Class = jni.cast(jenv.NewGlobalRef(jcls), jni.jclass) self.TYPE = jni.cast(jenv.NewGlobalRef(TYPE), jni.jclass) self.Constructor = jenv.GetMethodID(jcls, b"<init>", b"(I)V") self.valueOf = jenv.GetStaticMethodID(jcls, b"valueOf", b"(I)Ljava/lang/Integer;") self.MIN_VALUE = jenv.GetStaticIntField( jcls, jenv.GetStaticFieldID(jcls, b"MIN_VALUE", b"I")) self.MAX_VALUE = jenv.GetStaticIntField( jcls, jenv.GetStaticFieldID(jcls, b"MAX_VALUE", b"I")) # Some JVM's incorrectly return positive values if self.MIN_VALUE > 0: self.MIN_VALUE = -self.MIN_VALUE
def initialize(self, jenv: jni.JNIEnv): with JFrame(jenv, 1): jcls = jenv.FindClass(b"java/lang/reflect/Modifier") self.Class = jni.cast(jenv.NewGlobalRef(jcls), jni.jclass) self.PUBLIC = jenv.GetStaticIntField(jcls, jenv.GetStaticFieldID(jcls, b"PUBLIC", b"I")) self.PROTECTED = jenv.GetStaticIntField(jcls, jenv.GetStaticFieldID(jcls, b"PROTECTED", b"I")) self.PRIVATE = jenv.GetStaticIntField(jcls, jenv.GetStaticFieldID(jcls, b"PRIVATE", b"I")) self.FINAL = jenv.GetStaticIntField(jcls, jenv.GetStaticFieldID(jcls, b"FINAL", b"I")) self.STATIC = jenv.GetStaticIntField(jcls, jenv.GetStaticFieldID(jcls, b"STATIC", b"I")) self.ABSTRACT = jenv.GetStaticIntField(jcls, jenv.GetStaticFieldID(jcls, b"ABSTRACT", b"I")) self.INTERFACE = jenv.GetStaticIntField(jcls, jenv.GetStaticFieldID(jcls, b"INTERFACE", b"I")) self.NATIVE = jenv.GetStaticIntField(jcls, jenv.GetStaticFieldID(jcls, b"NATIVE", b"I")) self.STRICT = jenv.GetStaticIntField(jcls, jenv.GetStaticFieldID(jcls, b"STRICT", b"I")) self.SYNCHRONIZED = jenv.GetStaticIntField(jcls, jenv.GetStaticFieldID(jcls, b"SYNCHRONIZED", b"I")) self.TRANSIENT = jenv.GetStaticIntField(jcls, jenv.GetStaticFieldID(jcls, b"TRANSIENT", b"I")) self.VOLATILE = jenv.GetStaticIntField(jcls, jenv.GetStaticFieldID(jcls, b"VOLATILE", b"I")) self.isAbstract = jenv.GetStaticMethodID(jcls, b"isAbstract", b"(I)Z") self.isFinal = jenv.GetStaticMethodID(jcls, b"isFinal", b"(I)Z") self.isInterface = jenv.GetStaticMethodID(jcls, b"isInterface", b"(I)Z") self.isNative = jenv.GetStaticMethodID(jcls, b"isNative", b"(I)Z") self.isPrivate = jenv.GetStaticMethodID(jcls, b"isPrivate", b"(I)Z") self.isProtected = jenv.GetStaticMethodID(jcls, b"isProtected", b"(I)Z") self.isPublic = jenv.GetStaticMethodID(jcls, b"isPublic", b"(I)Z") self.isStatic = jenv.GetStaticMethodID(jcls, b"isStatic", b"(I)Z") self.isStrict = jenv.GetStaticMethodID(jcls, b"isStrict", b"(I)Z") self.isSynchronized = jenv.GetStaticMethodID(jcls, b"isSynchronized", b"(I)Z") self.isTransient = jenv.GetStaticMethodID(jcls, b"isTransient", b"(I)Z") self.isVolatile = jenv.GetStaticMethodID(jcls, b"isVolatile", b"(I)Z") self.toString = jenv.GetStaticMethodID(jcls, b"toString", b"(I)Ljava/lang/String;")