ホームページ  >  記事  >  Java  >  Java は、オブジェクト クラスの getClass() 関数を使用して、オブジェクトのランタイム クラスを取得します。

Java は、オブジェクト クラスの getClass() 関数を使用して、オブジェクトのランタイム クラスを取得します。

PHPz
PHPzオリジナル
2023-07-24 11:37:52972ブラウズ

Java は、Object クラスの getClass() 関数を使用して、オブジェクトのランタイム クラスを取得します。

Java では、各オブジェクトには、オブジェクトのプロパティとメソッドを定義するクラスがあります。 getClass() 関数を使用して、オブジェクトのランタイム クラスを取得できます。 getClass() 関数は Object クラスのメンバー関数であるため、すべての Java オブジェクトがこの関数を呼び出すことができます。この記事では、getClass() 関数の使用方法といくつかのコード例を紹介します。

getClass() 関数を使用してランタイム クラスを取得するのは非常に簡単です。オブジェクトの getClass() 関数を呼び出すだけで、オブジェクトの実行時クラスを表す Class オブジェクトが返されます。以下に例を示します。

public class Person {
    private String name;
    private int age;
    
    // 构造函数
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    // Getter和Setter方法
    // ...
    
    public static void main(String[] args) {
        Person person = new Person("John", 25);
        Class<? extends Person> clazz = person.getClass();
        System.out.println(clazz.getName());
    }
}

上の例では、Person クラスのオブジェクト person を作成し、person オブジェクトの getClass() 関数を呼び出し、戻り値をその戻り値の変数 clazz に代入します。クラスタイプ。次に、clazz の getName() 関数を呼び出して、person オブジェクトのランタイム クラスの名前を取得します。

getClass() 関数は、オブジェクトが属するクラスに関する情報を含む Class オブジェクトを返すことに注意してください。このオブジェクトを通じて多くの便利な関数を呼び出して、クラス名、修飾子、親クラス、インターフェイス、コンストラクター、フィールド、その他の情報を取得できます。

以下は、一般的に使用されるクラス オブジェクト関数の例です:

Class<? extends Person> clazz = person.getClass();

// 获取运行时类的名称(包含包名)
System.out.println(clazz.getName()); 

// 获取运行时类的简单名称(不包含包名)
System.out.println(clazz.getSimpleName());

// 获取运行时类的修饰符
int modifiers = clazz.getModifiers();
System.out.println(Modifier.toString(modifiers));

// 获取运行时类的父类
Class<?> superClass = clazz.getSuperclass();
System.out.println(superClass.getName());

// 获取运行时类实现的接口
Class<?>[] interfaces = clazz.getInterfaces();
for (Class<?> iface : interfaces) {
    System.out.println(iface.getName());
}

// 获取运行时类的构造函数
Constructor<?>[] constructors = clazz.getConstructors();
for (Constructor<?> constructor : constructors) {
    System.out.println(constructor.getName());
}

// 获取运行时类的字段
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
    System.out.println(field.getName());
}

つまり、Java の getClass() 関数は、オブジェクトの実行ステータスを取得できる非常に便利な関数です。実行時に.class を呼び出し、Class オブジェクトを通じてクラスに関するさまざまな情報を取得します。これは、一般的なコードの作成、リフレクション操作の実行、コードのデバッグに非常に役立ちます。この記事の紹介と例が、読者の getClass() 関数の理解と使用に役立つことを願っています。

以上がJava は、オブジェクト クラスの getClass() 関数を使用して、オブジェクトのランタイム クラスを取得します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。