HarmonyOS 鸿蒙Next 怎么样写同名方法不包错
HarmonyOS 鸿蒙Next 怎么样写同名方法不包错 怎么样写同名方法不报错 如:TCPSocket的,
tcp.on('message', async (value) => {
JLog.info(this.TAG, "on message value :" + JSON.stringify(value));
await this.onMessageResponse(value.message)
});
tcp.on('connect', () => {
JLog.info(this.TAG, "on connect");
});
tcp.on('close', () => {
JLog.info(this.TAG, "on close");
});
想做一些监听事件回调的,但怎么写都有一定的报错:
1、Duplicate function implementation. <ArkTSCheck>
2、This overload signature is not compatible with its implementation signature.
更多关于HarmonyOS 鸿蒙Next 怎么样写同名方法不包错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
这种重名在arkts中不支持(js中应该不支持的),了解到系统的一些接口(如location模块的on接口)这种写法底层实现的是C代码,.d.ts仅是声明; 如果您想实现类似的能力,通过参数辨别,可以使用if/switch进行判断,如:
更多关于HarmonyOS 鸿蒙Next 怎么样写同名方法不包错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
你贴个完整代码看看
在HarmonyOS(鸿蒙)系统中,编写同名方法而不引发错误,通常涉及方法的重载(Overloading)概念。重载是指在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。以下是如何在鸿蒙系统中实现方法重载而不报错的简要说明:
-
方法签名不同:确保每个同名方法的参数列表(包括参数类型和参数个数)是唯一的。这是区分重载方法的关键。
-
返回类型不影响重载:在鸿蒙(以及Java和C++等语言)中,方法的返回类型不构成方法重载的区分条件。即使返回类型不同,只要参数列表相同,编译器也会报错。
-
访问修饰符:重载方法的访问修饰符(如public、protected、private)可以相同,也可以不同,但这不影响重载的判定。
-
异常抛出:方法抛出的异常类型也不构成重载的区分条件。
示例代码:
public class Example {
public void display(int a) {
System.out.println("Integer: " + a);
}
public void display(String a) {
System.out.println("String: " + a);
}
}
上述代码中,display
方法被重载了两次,一次接受int
类型参数,另一次接受String
类型参数,因此不会报错。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html,