callObjectMethodSync<T extends JObject> method

dynamic callObjectMethodSync<T extends JObject>(
  1. String methodName, {
  2. List? args,
  3. List<String>? assignedSignature,
})

Implementation

dynamic callObjectMethodSync<T extends JObject>(String methodName,
    {List? args, List<String>? assignedSignature}) {
  String type = T.toString();
  if (type == 'dynamic') {
    throw 'callObject error. \n'
        'Using callObject need specify the dart type.\n'
        'And this dart class need extend jobject. \n'
        'For example: callObjectMethodSync<JInteger>("getTest");';
  }
  final sig = getRegisterJavaClassSignature(type);
  if (sig == null) {
    throw 'callObject error. \n'
        'Can not find signature in register map.\n'
        'You should use @nativeJavaClass specify the java class.'
        'See more in https://github.com/dart-native/dart_native/tree/master#usage.\n'
        'Or you can just use call method to specify the return type,'
        'like callMethodSync("getString", "Ljava/lang/String;")';
  }
  final convertor = getRegisterPointerConvertor(type);
  return convertor!((callMethodSync(methodName, sig,
          args: args, assignedSignature: assignedSignature) as JObject)
      .pointer);
}