Java中getName()、getCanonicalName()和getSimpleName()的异同 发表于 2019-12-17 | 最简单的方法, 就是写个测试类测试一下: 123456789101112131415161718192021222324252627282930313233343536373839package com.getname.pkg; public class Main { public class Demo1 { class Demo2 { } } public static void main(String[] args) { /* 三种方式获取普通类Main的名字 */ System.out.println("-----三种方式获取普通类的名字-----"); String name = Main.class.getName(); System.out.println("\t" + "getName()方法:" + name); String canonicalname = Main.class.getCanonicalName(); System.out.println("getCanonicalName()方法:" + "\t" + canonicalname); String simplename = Main.class.getSimpleName(); System.out.println("getSimpleName()方法:" + "\t" + simplename); /* getName()和getCanonicalName()获取数组名比较 */ int[] aaa = { 1, 2, 3 }; System.out.println("\r\n" + "-----对于数组 int[]-----"); name = aaa.getClass().getName(); System.out.println("\t" + "getName()方法:" + name); canonicalname = aaa.getClass().getCanonicalName(); System.out.println("getCanonicalName()方法:" + "\t" + canonicalname); /* getName()和getCanonicalName()获取内部类名比较 */ System.out.println("\r\n" + "-----对于内部类-----"); name = Demo1.Demo2.class.getName(); System.out.println("\t" + "getName()方法:" + name); canonicalname = Demo1.Demo2.class.getCanonicalName(); System.out.println("getCanonicalName()方法:" + "\t" + canonicalname); }} 打印结果为: 123456789101112-----三种方式获取普通类的名字----- getName()方法:com.getname.pkg.MaingetCanonicalName()方法: com.getname.pkg.MaingetSimpleName()方法: Main-----对于数组 int[]----- getName()方法:[IgetCanonicalName()方法: int[]-----对于内部类----- getName()方法:com.getname.pkg.Main$Demo1$Demo2getCanonicalName()方法: com.getname.pkg.Main.Demo1.Demo2 乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站