HarmonyOS 鸿蒙Next 如何判断一个类变量是否为Resource类型?
HarmonyOS 鸿蒙Next 如何判断一个类变量是否为Resource类型?
private mBtnCountingText?: string | Resource | null = null
我有一个类变量声明如上,可以是string、Resource、null
我要根据入参的类型去处理不同的判断,string可以用typeof判断,Resource该怎么做类型判断呢?
8 回复
Type.ts文件保存,不可以用ets:
export class Type{
static checkTypeByMember<T>(object: any, member): object is T {
if (typeof object != "object"){
// fix: Cannot use 'in' operator in Non-Object
return false
}
return member in object;
}
}
同问
没有,我的做法是先判断是否为string或者null或者能判断出类型的,最后else就默认是Resource处理了
解决啦吗,楼主,今天我也遇见这个问题啦,蹲个解决方案吗?
没有,我的做法是先判断是否为string或者null或者能判断出类型的,最后else就默认是Resource处理了
我也遇到类似的问题,求解答
试试构造instanceof 原型链等方式 或者判断Resource里面的属性存在不
在HarmonyOS鸿蒙Next系统中,判断一个类变量是否为Resource类型,可以通过Java的反射机制以及类型检查来实现。Resource类型通常用于表示资源,如字符串、图片等。
具体步骤如下:
-
获取变量类型:使用Java的反射API获取变量的类型信息。
-
类型比较:将获取到的类型与
Resource
类型进行比较。在HarmonyOS中,Resource
类通常位于ohos.aafwk
包下。
示例代码如下:
import ohos.aafwk.Resource;
import java.lang.reflect.Field;
public class ResourceChecker {
public static boolean isResourceType(Object obj, String fieldName) {
try {
Field field = obj.getClass().getDeclaredField(fieldName);
Class<?> fieldType = field.getType();
return fieldType.equals(Resource.class);
} catch (NoSuchFieldException e) {
e.printStackTrace();
return false;
}
}
}
在上述代码中,isResourceType
方法接受一个对象obj
和字段名fieldName
,返回该字段是否为Resource
类型。
注意:
- 使用反射时,需处理好异常。
- 确保变量所在的类已正确导入并存在。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html