前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java中getName()、getCanonicalName()和getSimpleName()的异同

Java中getName()、getCanonicalName()和getSimpleName()的异同

作者头像
乱码三千
发布2021-07-29 15:18:50
4540
发布2021-07-29 15:18:50
举报
文章被收录于专栏:乱码三千乱码三千

最简单的方法, 就是写个测试类测试一下:

代码语言:javascript
复制
package 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);
}
}

打印结果为:

代码语言:javascript
复制
-----三种方式获取普通类的名字-----
 getName()方法:com.getname.pkg.Main
getCanonicalName()方法:com.getname.pkg.Main
getSimpleName()方法:Main

-----对于数组 int[]-----
 getName()方法:[I
getCanonicalName()方法:int[]

-----对于内部类-----
 getName()方法:com.getname.pkg.Main$Demo1$Demo2
getCanonicalName()方法:com.getname.pkg.Main.Demo1.Demo2
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乱码三千 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档