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

2020年11月1日

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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");
}
}
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"); } }
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