main.java

来自「java的经典例子」· Java 代码 · 共 42 行

JAVA
42
字号
class Main {
    static void printIsAssignableFrom(Class a, Class b) {
        System.out.println(a.isAssignableFrom(b));
    }

    public static void main(String[] args) {
        printIsAssignableFrom(C.class, Object.class);         // false
        printIsAssignableFrom(C.class, C.class);              // true
        printIsAssignableFrom(C.class, D.class);              // true
        printIsAssignableFrom(D.class, C.class);              // false

        printIsAssignableFrom(Object.class, int[].class);     // true
        printIsAssignableFrom(int[].class, int[].class);      // true
        printIsAssignableFrom(C[].class, D.class);            // false
        printIsAssignableFrom(C[].class, D[].class);          // true
        printIsAssignableFrom(C[].class, C[][].class);        // false

        printIsAssignableFrom(Object.class, I.class);         // true
        printIsAssignableFrom(I.class, I.class);              // true
        printIsAssignableFrom(D.class, I.class);              // false
        printIsAssignableFrom(I.class, D.class);              // true

        printIsAssignableFrom(D.class, J.class);              // false
        printIsAssignableFrom(J.class, D.class);              // false

        printIsAssignableFrom(I.class, J.class);              // true
        printIsAssignableFrom(J.class, J.class);              // true
        printIsAssignableFrom(J.class, I.class);              // false

        // Returns true iff both Class objects are equal.
        printIsAssignableFrom(long.class, long.class);        // true

        // Does not work for primitive types in general.
        printIsAssignableFrom(long.class, int.class);         // false
    }
}

class C {}
class D extends C implements I {}
interface I {}
interface J extends I {}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?