高级 | Java中获取类名的3种方法
转载自 高级 | Java中获取类名的3种方法
获取类名的方法
Java 中获取类名的方式主要有以下三种。
getName()
返回的是虚拟机里面的class的类名表现形式。
getCanonicalName()
返回的是更容易理解的类名表示。
getSimpleName()
返回的是类的简称。
都有什么区别?
通过一个实例来看下它们主要的区别。
public class TestClass {public static void main(String[] args) {// 外部普通类System.out.println("方法名 类名");System.out.println("getName " + TestClass.class.getName());System.out.println("getCanonicalName " + TestClass.class.getCanonicalName());System.out.println("getSimpleName " + TestClass.class.getSimpleName());System.out.println();// 内部类System.out.println("getName " + TestInnerClass.class.getName());System.out.println("getCanonicalName " + TestInnerClass.class.getCanonicalName());System.out.println("getSimpleName " + TestInnerClass.class.getSimpleName());System.out.println();// 数组类TestInnerClass[] testInnerClasses = new TestInnerClass[]{new TestInnerClass(),new TestInnerClass(),new TestInnerClass()};System.out.println("getName " + testInnerClasses.getClass().getName());System.out.println("getCanonicalName " + testInnerClasses.getClass().getCanonicalName());System.out.println("getSimpleName " + testInnerClasses.getClass().getSimpleName());System.out.println();}static class TestInnerClass {}}
程序输出以下结果。
方法名 类名
getName com.test.TestClass
getCanonicalName com.test.TestClass
getSimpleName TestClassgetName com.test.TestClass$TestInnerClass
getCanonicalName com.test.TestClass.TestInnerClass
getSimpleName TestInnerClassgetName [Lcom.test.TestClass$TestInnerClass;
getCanonicalName com.test.TestClass.TestInnerClass[]
getSimpleName TestInnerClass[]
[Lcom.test.TestClass$TestInnerClass;
值得说明一下。
这是一种对函数返回值和参数的编码,叫做JNI字段描述符(JavaNative Interface FieldDescriptors)。
[
表示数组,一个代表一维数组,比如 [[
代表二维数组。之后 L
代表类描述符,最后 ;
表示类名结束。
结论
1、从以上结果可以看出 getName() 和 getCanonicalName() 在获取普通类名的时候没有区别,在获取内部类和数组类有区别的。
2、getSimpleName() 在获取普通类和内部类名的时候没区别,在获取数组类的时候有区别。
高级 | Java中获取类名的3种方法相关推荐
- java 不知道类名_Java 中获取类名的三种方法,你知道几种?
之前我们分享过Java高级篇--深入浅出Java类加载机制这篇文章,今天来带你了解获取类名的三种方法. 获取类名的方法 Java 中获取类名的方式主要有以下三种. getName() 返回的是虚拟机里 ...
- java 取名字_Java 中获取类名的三种方法,你知道几种?
之前我们分享过Java高级篇--深入浅出Java类加载机制这篇文章,今天来带你了解获取类名的三种方法. 获取类名的方法 Java 中获取类名的方式主要有以下三种. getName()返回的是虚拟机里面 ...
- java 获取类名_Java中获取类名的3种方法!
获取类名的方法 Java 中获取类名的方式主要有以下三种. getName() 返回的是虚拟机里面的class的类名表现形式. getCanonicalName() 返回的是更容易理解的类名表示. g ...
- Spring 中获取 request 的几种方法,及其线程安全性分析
概述 在使用Spring MVC开发Web系统时,经常需要在处理请求时使用request对象,比如获取客户端ip地址.请求的url.header中的属性(如cookie.授权信息).body中的数据等 ...
- Java中String字符串截取几种方法(substring,split)
Java中String字符串截取几种方法 substring,split 这是一个Java中的String的基础用法的演示. 下面通过代码对大家进行讲解 substring 这里用来ndexOf,la ...
- Java中创建数组的几种方法
Java中创建数组的几种方法 public static void main(String[] args) { //创建数组的第一种方法 int[] arr=new int[6]; int intVa ...
- 在 Java 中初始化 List 的五种方法
转载自 在 Java 中初始化 List 的五种方法 Java 中经常需要使用到 List,下面简单介绍几种常见的初始化方式. 1.构造 List 后使用 List.add 初始化 List< ...
- PHP中获取星期的几种方法
PHP中获取星期的几种方法 PHP星期几获取代码: 1 date(l); 2 //data就可以获取英文的星期比如Sunday 3 date(w); 4 //这个可以获取数字星期比如123,注意0是星 ...
- android获取颜色资源,Android中获取颜色的几种方法
Android中获取颜色的几种方法: 通过android封装好的Color类中的常量 public static final int BLACK = 0xFF000000; public static ...
最新文章
- php空格是什么,php删除空格函数是什么
- CV:Win10下深度学习框架安装之Tensorflow/tensorflow_gpu+Cuda+Cudnn(最清楚/最快捷)之详细攻略(图文教程)
- 我的2015学习总结及2016的技术规划(2016.02)
- LS-DYNA常用关键字
- Linux下PostgreSQL基础操作
- [JSON].valueOf( keyPath )
- C#中const和readonly的区别
- Vue监视---vue工作笔记0005
- chmod命令用于更改文件或目录的所有者_Linux 修改权限命令 chmod 用法示例
- 为什么eval某个json字符串时要加括号?
- ajax 将整个表单提交到后台处理
- i.MX283A移植mt7601--小米随身wifi
- 反击网络执法官(转)
- Tomcat的appBase,docBase,path关系
- vue自动计算日期天数
- 高通核心板,高通骁龙410系列 MSM8916
- 电脑耳机拔出后,再插入没声音
- android webview无法显示H5中的图片
- SOAP Client in Delphi7
- C++中引用,指针,指针的引用,指针的指针