Heim  >  Artikel  >  Java  >  So identifizieren Sie Datentypen während der Laufzeit in Java

So identifizieren Sie Datentypen während der Laufzeit in Java

PHP中文网
PHP中文网Original
2017-06-22 11:50:181432Durchsuche

1. Die Methode getClasses() des Class-Objekts ruft alle öffentlichen internen Klassen in der Klasse sowie die von der übergeordneten Klasse und der übergeordneten Schnittstelle geerbten internen Klassen ab. Die Methode getinterfaces() gibt alle von der Klasse geerbten Schnittstellen zurück.

import javax.print.attribute.standard.PrinterInfo;

interface  HasBatteries{}
interface Waterproof{}
interface ShootsThings{}

class Toy{
    Toy(){}
    Toy(int i){}
}

class FancyToy extends Toy implements HasBatteries,Waterproof,ShootsThings{
    public FancyToy() {
        // TODO 自动生成的构造函数存根
        super(1);
    }
}

public class ToyTest {
    public static void main(String[] args){
        Class class1=null;
        try{
            class1=class1.forName("FancyToy");
        }catch (ClassNotFoundException e) {
            // TODO: handle exception
        }
        printInfo(class1);
        Class[] faces=class1.getInterfaces();
        for(int i=0;i<faces.length;i++){
            printInfo(faces[i]);
        }
        Class cy=class1.getSuperclass();
        Object cObject=null;
        try{
            cObject=cy.newInstance();
        }catch (Exception e) {
            // TODO: handle exception
        }
        printInfo(cObject.getClass());
        
    }
    
    static void printInfo(Class cc){
        System.out.println("Class name:"+cc.getName()+" is interface? "+cc.isInterface());
    }

}

2. Der bei Verwendung von forName() des Klassenobjekts übergebene Parameter erfordert den vollständigen Namen, z. B. Paketname, Klassenname, java.lang.String .

import javax.print.attribute.standard.PrinterInfo;

interface  HasBatteries{}
interface Waterproof{}
interface ShootsThings{}

class Toy{
    Toy(){}
    Toy(int i){}
}

class FancyToy extends Toy implements HasBatteries,Waterproof,ShootsThings{
    public FancyToy() {
        // TODO 自动生成的构造函数存根
        super(1);
    }
}

public class ToyTest {
    public static void main(String[] args){
        Class class1=null;
        try{
            class1=class1.forName("FancyToy");
        }catch (ClassNotFoundException e) {
            // TODO: handle exception
        }
        printInfo(class1);
        Class[] faces=class1.getInterfaces();
        for(int i=0;i<faces.length;i++){
            printInfo(faces[i]);
        }
        Class cy=class1.getSuperclass();
        Object cObject=null;
        try{
            cObject=cy.newInstance();
        }catch (Exception e) {
            // TODO: handle exception
        }
        printInfo(cObject.getClass());
        
    }
    
    static void printInfo(Class cc){
        System.out.println("Class name:"+cc.getName()+" is interface? "+cc.isInterface());
    }

}

Das obige ist der detaillierte Inhalt vonSo identifizieren Sie Datentypen während der Laufzeit in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn