HarmonyOS 鸿蒙Next 如何判断自定义类的类型?

发布于 1周前 作者 yibo5220 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 如何判断自定义类的类型?

abstract class X {
}

class A extends X { }

class B extends X { }

class C extends X { }

let array = [new C(), new B(), new A(),]  

如何判断array中对象的类型是A、B、C中的哪一种?

2 回复
可以通过array[0].constructor.name来获取到对象所属的类

在HarmonyOS鸿蒙Next系统中,判断自定义类的类型通常依赖于Java或Kotlin的反射机制,因为鸿蒙系统应用开发主要基于这些语言。以下是一个基本的判断自定义类类型的方法:

  1. 使用getClass()方法:每个Java对象都有一个getClass()方法,它返回该对象的Class对象。你可以通过比较两个对象的Class对象来判断它们是否属于同一类型。

    MyClass obj1 = new MyClass();
    MyClass obj2 = new MyClass();
    if (obj1.getClass() == obj2.getClass()) {
        // 它们是同一类型
    }
    
  2. 使用instanceof关键字instanceof关键字用于检查一个对象是否是特定类的实例或其子类的实例。

    MyClass obj = new MyClass();
    if (obj instanceof MyClass) {
        // obj是MyClass的实例
    }
    
  3. 使用Class.forName()方法:如果你知道类的完全限定名,可以使用Class.forName()来获取Class对象,并进行比较。

    Class<?> clazz = Class.forName("com.example.MyClass");
    if (obj.getClass() == clazz) {
        // obj是MyClass的实例
    }
    

这些方法在HarmonyOS鸿蒙Next系统中同样适用。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部