Error cannot call instance method without an instance

现象

对于Java的类java.util.HashMapput函数:

public java.lang.Object java.util.HashMap.put(java.lang.Object,java.lang.Object)

去hook:

  var func_HashMap_put = cls_HashMap.put('java.lang.Object', 'java.lang.Object')

但报错:

Error: put: cannot call instance method without an instance

原因

此处语法错误 == 笔误,写成:重载overload函数的写法(加上函数参数类型)

cls_HashMap.put('java.lang.Object', 'java.lang.Object')

但该写法其实是函数调用的写法

而如果去调用函数的话,的确需要:Instance实例

但是此处是hook,不是函数调用

此处只是需要去hook该函数,所以只需要

解决办法

只写出函数名(而无需额外的,类似overload的参数类型)

具体写法

var func_HashMap_put = cls_HashMap.put

results matching ""

    No results matching ""