What is the difference between canonical name, simple name and class name in Java Class?

后端 未结 8 1210
感动是毒
感动是毒 2020-11-27 08:58

In Java, what is the difference between these:

Object o1 = ....
o1.getClass().getSimpleName();
o1.getClass().getName();
o1.getClass().getCanonicalName();
         


        
8条回答
  •  鱼传尺愫
    2020-11-27 09:27

    In addition to Nick Holt's observations, I ran a few cases for Array data type:

    //primitive Array
    int demo[] = new int[5];
    Class clzz = demo.getClass();
    System.out.println(clzz.getName());
    System.out.println(clzz.getCanonicalName());
    System.out.println(clzz.getSimpleName());       
    
    System.out.println();
    
    
    //Object Array
    Integer demo[] = new Integer[5]; 
    Class clzz = demo.getClass();
    System.out.println(clzz.getName());
    System.out.println(clzz.getCanonicalName());
    System.out.println(clzz.getSimpleName());
    

    Above code snippet prints:

    [I
    int[]
    int[]
    
    [Ljava.lang.Integer;
    java.lang.Integer[]
    Integer[]
    

提交回复
热议问题