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

后端 未结 8 1176
感动是毒
感动是毒 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:13

        public void printReflectionClassNames(){
        StringBuffer buffer = new StringBuffer();
        Class clazz= buffer.getClass();
        System.out.println("Reflection on String Buffer Class");
        System.out.println("Name: "+clazz.getName());
        System.out.println("Simple Name: "+clazz.getSimpleName());
        System.out.println("Canonical Name: "+clazz.getCanonicalName());
        System.out.println("Type Name: "+clazz.getTypeName());
    }
    
    outputs:
    Reflection on String Buffer Class
    Name: java.lang.StringBuffer
    Simple Name: StringBuffer
    Canonical Name: java.lang.StringBuffer
    Type Name: java.lang.StringBuffer
    

提交回复
热议问题