java反射中getCanonicalName、getName、getSimpleName的区别

1.看如下实例:

package thread;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;

import play.Play;

public class TestName {

    public static void main(String[] args) {
        B b=new B();  
        System.out.println(b.getClass().getCanonicalName()); 
        System.out.println(b.getClass().
        ());
        System.out.println(b.getClass().getName());  

        B[] bb=new B[]{};  
        System.out.println(bb.getClass().getCanonicalName());
        System.out.println(bb.getClass().getSimpleName());
        System.out.println(bb.getClass().getName());

        System.out.println(String.class.getCanonicalName());  
        System.out.println(String.class.getSimpleName());
        System.out.println(String.class.getName());

        System.out.println(int.class.getCanonicalName());
        System.out.println(int.class.getSimpleName());
        System.out.println(int.class.getName());

        B a1=new B();  
        B a2=new B();  
        List<B> c=new ArrayList<B>();  
        c.add(a1);  
        c.add(a2);  
        System.out.println(c.getClass().getCanonicalName()); 
        System.out.println(c.getClass().getSimpleName());
        System.out.println(c.getClass().getName());
    }
}

2.打印的结果是:

thread.B
B
thread.B
thread.B[]
B[]
[Lthread.B;
java.lang.String
String
java.lang.String
int
int
int
java.util.ArrayList
ArrayList
java.util.ArrayList

猜你喜欢

转载自blog.csdn.net/yaomingyang/article/details/80545663