「Java」Java.lang.Class.asSubclass()メソッドを利用するサンプル

2020年11月1日

asSubclass()説明
このClassオブジェクトをキャストして、指定されたクラスオブジェクトによって表されるクラスのサブクラスを表します。
javaコード

package com.arkgame.study;

public class ParentClassDemo {

      public static void main(String[] args) {
            try {
                  ParentClassDemo cls = new ParentClassDemo();
                  ParentClassDemo subcls = new SubClassA();

                  //ParentClassDemo
                  Class<?> c = cls.getClass();
                  System.out.println("result1:  " + c);

                  //sub class SubClassA
                  Class<?> cg = subcls.getClass();
                  System.out.println("result2: " + cg);

                  //represent a subclass of the specified class object
                  Class<?> cftInfo = cg.asSubclass(c);

                  System.out.println("result3: " + cftInfo);
            } catch (ClassCastException e) {
                  System.out.println(e.toString());
            }
      }
}

class SubClassA extends ParentClassDemo {

      public void print() {

            System.out.println("subclass method is called");

      }
}

結果
result1: class com.arkgame.study.ParentClassDemo
result2: class com.arkgame.study.SubClassA
result3: class com.arkgame.study.SubClassA

Java

Posted by arkgame