HarmonyOS鸿蒙Next中如何定义一个可空的范型
HarmonyOS鸿蒙Next中如何定义一个可空的范型
export interface FinishListener<T> {
onFinish(code: number, message: string, data: T): void
}
这里的data如果传入null会报错,希望不报错,要怎么做
4 回复
可以修改为以下方式
export interface FinishListener<T> {
onFinish(code: number, message: string, data?: T): void
}
function fx(i: FinishListener<object>, data: object | undefined) {
if (data == null) {
return i.onFinish(0, 'aaa')
} else {
return i.onFinish(0, 'aaa', data)
}
}
更多关于HarmonyOS鸿蒙Next中如何定义一个可空的范型的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
export interface FinishListener<T> { onFinish(code: number, message: string, data?: T|null): void }
这样就可以传空了
在HarmonyOS鸿蒙Next中,定义一个可空的泛型可以通过使用?
符号来实现。具体语法如下:
class Example<T> {
value: T | null = null;
setValue(value: T | null): void {
this.value = value;
}
getValue(): T | null {
return this.value;
}
}
在上述代码中,T
是泛型类型参数,T | null
表示该类型可以是T
类型或null
。通过这种方式,可以在泛型类中定义可空的值。
在HarmonyOS鸿蒙Next中,定义一个可空的泛型可以通过使用?
来表示。例如,定义一个可空的泛型类或方法时,可以使用T?
来表示该泛型类型可以为空。具体示例如下:
class Box<T> {
private T value;
public Box(T value) {
this.value = value;
}
public T getValue() {
return value;
}
}
Box<String?> nullableBox = new Box<>(null);
String? nullableValue = nullableBox.getValue();
在这个示例中,Box<T>
是一个泛型类,而Box<String?>
表示Box
可以存储一个可为空的String
类型值。