Skip to content

Commit 77976f7

Browse files
committed
fix JNIObject.getField
1 parent 070cfc8 commit 77976f7

File tree

2 files changed

+6
-12
lines changed

2 files changed

+6
-12
lines changed

Sources/JNI/JNIFields.swift

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,12 @@ public extension JNI {
2626
return try T.fromField(fieldID!, on: javaObject)
2727
}
2828

29-
func GetField<T: JavaInitializableFromField & JavaParameterConvertible>(
30-
_ fieldName: String,
31-
javaClass: JavaClass,
32-
from javaObject: JavaObject
33-
) throws -> T {
29+
func GetField(_ fieldName: String, fieldJavaClassName: String, from javaObject: JavaObject) throws -> JavaObject {
3430
let env = self._env
35-
let fieldID = env.pointee.pointee.GetFieldID(env, javaClass, fieldName, T.asJNIParameterString)
31+
let javaClass = try GetObjectClass(obj: javaObject)
32+
let fieldID = env.pointee.pointee.GetFieldID(env, javaClass, fieldName, "L\(fieldJavaClassName);")
3633
try checkAndThrowOnJNIError()
37-
return try T.fromField(fieldID!, on: javaObject)
34+
return try JavaObject.fromField(fieldID!, on: javaObject)
3835
}
3936
}
4037

Sources/JNI/JNIObjects.swift

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,8 @@ open class JNIObject {
8787
return try jni.GetField(fieldName, from: self.instance)
8888
}
8989

90-
public func getField<T: JavaInitializableFromField & JavaParameterConvertible>(
91-
_ fieldName: String,
92-
javaClass: JavaClass
93-
) throws -> T {
94-
return try jni.GetField(fieldName, javaClass: javaClass, from: self.instance)
90+
public func getField(_ fieldName: String, fieldJavaClassName: String) throws -> JavaObject {
91+
return try jni.GetField(fieldName, fieldJavaClassName: fieldJavaClassName, from: self.instance)
9592
}
9693

9794
public static func callStatic(methodName: String, arguments: [JavaParameterConvertible] = []) throws {

0 commit comments

Comments
 (0)