java new method_java 这种new 对象返回值然后传递给函数,这种写法多吗

时间: 2021-02-12 19:21:04

标签:

java

Pointer _ToReflectedMethod = svcMemory.registerSvc(new Arm64Svc() {

@Override

public long handle(Emulator emulator) {

RegisterContext context = emulator.getContext();

UnidbgPointer clazz = context.getPointerArg(1);

UnidbgPointer jmethodID = context.getPointerArg(2);

DvmClass dvmClass = classMap.get(clazz.toIntPeer());

DvmMethod dvmMethod = null;

if (dvmClass != null) {

dvmMethod = dvmClass.getStaticMethod(jmethodID.toIntPeer());

if (dvmMethod == null) {

dvmMethod = dvmClass.getMethod(jmethodID.toIntPeer());

}

}

if (log.isDebugEnabled()) {

log.debug("ToReflectedMethod clazz=" + dvmClass + ", jmethodID=" + jmethodID + ", lr=" + context.getLRPointer());

}

if (dvmMethod == null) {

throw new BackendException();

} else {

if (verbose) {

System.out.printf("JNIEnv->ToReflectedMethod(%s, "%s", %s) was called from %s%n", dvmClass.getClassName(), dvmMethod.methodName, dvmMethod.isStatic ? "is static" : "not static", UnidbgPointer.register(emulator, Arm64Const.UC_ARM64_REG_LR));

}

return addLocalObject(dvmMethod.toReflectedMethod());

}

}

}) ;

最佳答案

这不就是匿名内部类么

说起来

老哥你到底是干啥的啊,这几年下到语法上到AI啥问题都给问了,你说你不是机器人真不信啊

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在面向对象编程中,__new__和__init__都是用于创建类实例的方法,但它们的作用不同。 __new__方法是用于创建实例并返回它的实例对象的方法。它是类级别的方法,即它是在类级别上定义的,而不是在实例级别上定义的。__new__方法的第一个参数是类本身,其余参数是传递给类构造函数的参数。__new__方法的返回值通常是一个新的实例对象,但也可以返回一个已经存在的实例对象。 __init__方法是用于初始化实例的方法。它是实例级别的方法,即它是在实例级别上定义的。__init__方法的第一个参数是self,它指向正在初始化的实例对象。其余参数是传递给类构造函数的参数。__init__方法通常不返回任何值,它只是初始化实例的状态。 因此,__new__方法是用于创建实例对象的,而__init__方法是用于初始化实例对象的。__new__方法返回一个新的实例对象,而__init__方法对该实例对象进行初始化。 下面是一个简单的例子,演示了__new__和__init__方法的区别: ```python class MyClass: def __new__(cls, *args, **kwargs): print("__new__ method is called") instance = super().__new__(cls) return instance def __init__(self, *args, **kwargs): print("__init__ method is called") self.name = args[0] self.age = args[1] my_obj = MyClass("Tom", 25) print(my_obj.name) print(my_obj.age) ``` 输出结果为: ``` __new__ method is called __init__ method is called Tom 25 ``` 在这个例子中,__new__方法被调用来创建实例对象,然后__init__方法被调用来初始化该实例对象的状态。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值