Class.getName和Class.getCanonicalName的区别
2024-08-27 00:13:26
对于一般的type来说,这二者没有区别,对于array和inner type,就有区别了,可以写代码亲测,如下:
package simple; class Box {
class Inner {}
} public class Foo {
public static void main(String[] args) throws Exception {
// Ordinary class:
System.out.println(Box.class.getCanonicalName());
System.out.println(Box.class.getName());
// Inner class:
System.out.println(Box.Inner.class.getCanonicalName());
System.out.println(Box.Inner.class.getName());
// Array type:
System.out.println(args.getClass().getCanonicalName());
System.out.println(args.getClass().getName());
}
}
一般,用于load class的时候,比如说Class.forName,就需要用Class.getName而不是Class.getCononicalName
最新文章
- 产品前端重构(TypeScript、MVC框架设计)
- linux(centOS)下安装Oracle步骤
- Visual Studio 选择相同变量高亮
- Angular JS笔记
- 怎么从代码中拿到栈回溯信息(call stack trace)
- HDOJ/HDU 1180 诡异的楼梯(经典BFS-详解)
- sde需要注意的几个常见问题
- 登录记住账号和密码小Demo
- ==与equals()方法的不同
- C程序第一次作业
- Vue v-for循环添加表单v-model不重复变动的注意事项!
- php数组排序sort
- Bootstrap table 分页 In asp.net MVC
- SpringBoot捕获全局异常
- 2018牛客网暑假ACM多校训练赛(第三场)I Expected Size of Random Convex Hull 计算几何,凸包,其他
- 禁止WORDPRESS站内搜索的方法
- centos密码策略
- Google BreakPad使用集
- windows7 资源管理器无法显示常用
- [转帖]linux namespace 和cgroup lxc