精华内容
下载资源
问答
  • 主要介绍了 Java 获取当前类名和方法名的实现方法的相关资料,这里不仅提供了实现方法并比较几种方法的效率,需要的朋友可以参考下
  • Java获取当前类名的两种方法 适用于非静态方法:this.getClass().getName() 适用于静态方法:Thread.currentThread().getStackTrace()[1].getClassName()

    Java获取当前类名的两种方法

    适用于非静态方法:this.getClass().getName()

    适用于静态方法:Thread.currentThread().getStackTrace()[1].getClassName()

     

    展开全文
  • JAVA获取对象类名

    千次阅读 2019-03-07 23:38:23
    对象名.getClass(),与类名.class所得到的字符串相同: String a = new String("aaa"); System.out.println(a.getClass() == String.class); //返回true

    对象名.getClass(),与类名.class所得到的字符串相同:

    String a = new String("aaa");
    System.out.println(a.getClass() == String.class);    //返回true
    
    展开全文
  • Java获取当前类名和当前方法名

    千次阅读 2017-09-23 12:02:48
    Java获取当前类名的两种方法: 适用于非静态方法:this.getClass().getName() 适用于静态方法:Thread.currentThread().getStackTrace()[1].getClassName() 获取类名: 1、在类的实例中可使用this.getClass()....

    Java获取当前类名的两种方法:

    适用于非静态方法:this.getClass().getName()

    适用于静态方法:Thread.currentThread().getStackTrace()[1].getClassName()
    获取类名:
    1、在类的实例中可使用this.getClass().getName();但在static method中不能使用该方法;
    2、在static method中使用方法:Thread.currentThread().getStackTrace()[1].getClassName();
    获取方法名:Thread.currentThread().getStackTrace()[1].getMethodName();
    获取代码行号:Thread.currentThread().getStackTrace()[1].getLineNumber();

    展开全文
  • Java获取当前类名、方法名

    千次阅读 2014-04-11 12:01:07
    Java获取当前类名、方法名 分类: java2012-06-25 12:51 3880人阅读 评论(0) 收藏 举报 javastringthreadexceptionjdkobject 为了测试各个函数,如果手动打印每个类名、函数名,那么多函数的话能...
     

    Java获取当前类名、方法名

    分类: java   3880人阅读  评论(0)  收藏  举报

    为了测试各个函数,如果手动打印每个类名、函数名,那么多函数的话能把人累死,Java早已准备好了一堆记录自身的函数。

    获取类名:

    1. public static void testGetClassName() {  
    2.     // 方法1:通过SecurityManager的保护方法getClassContext()  
    3.     String clazzName = new SecurityManager() {  
    4.         public String getClassName() {  
    5.             return getClassContext()[1].getName();  
    6.         }  
    7.     }.getClassName();  
    8.     System.out.println(clazzName);  
    9.     // 方法2:通过Throwable的方法getStackTrace()  
    10.     String clazzName2 = new Throwable().getStackTrace()[1].getClassName();  
    11.     System.out.println(clazzName2);  
    12.     // 方法3:通过分析匿名类名称()  
    13.     String clazzName3 = new Object() {  
    14.         public String getClassName() {  
    15.             String clazzName = this.getClass().getName();  
    16.             return clazzName.substring(0, clazzName.lastIndexOf('$'));  
    17.         }  
    18.     }.getClassName();  
    19.     System.out.println(clazzName3);  
    20.     //方法4:通过Thread的方法getStackTrace()  
    21.     String clazzName4 = Thread.currentThread().getStackTrace()[2].getClassName();  
    22.     System.out.println(clazzName4);  
    23. }  


     

    执行100w次,

    第一种方法:1718ms

    第二种方法:4843ms

    第三种方法:47ms

    第四种方法:6484ms

    比较:
        1)方法1不知有没有什么使用限制?
        2)方法2通过异常机制获取调用栈,性能最差,但能提供其它方法所不具有的功能,还可以获取方法名,行号等等;但这么使用多少有点不太常规;
        3)方法3只是简单分析了一下匿名类的名称,显然要简单多,事实上性能也是最高的;

        4)方法4感觉和方法3有点类似,比方法3正规了点

    获取函数名:

    1. public static void testGetFunctionName() {  
    2.         // 方法1:通过Throwable的方法getStackTrace()  
    3.         String funcName2 = new Throwable().getStackTrace()[1].getMethodName();  
    4.         System.out.println(funcName2);  
    5.         //方法2:通过Thread的方法getStackTrace()  
    6.         String clazzName4 = Thread.currentThread().getStackTrace()[2].getMethodName();  
    7.         System.out.println(clazzName4);   
    8.     }  


    执行100w次:

    第一种:4856ms

    第二种:6337ms

     

    说明:

    1.Exception类继承于Throwable,所以有的地方用Exception调用那个getStackTrace,其实调用的还是Throwable的

    2.不同的jdk版本调用getStackTrace后得到的数组不太一样,下标多试几次就知道了,以上是jdk1.6版本下的

    更多 0
    展开全文
  • // Java 获取当前类名的方法,静态和动态 --- 可用于获取当前类的包名 静态方法:String fileName = Thread.currentThread().getStackTrace()[ 1 ].getClassName(); 动态方法:String fileName = this.getClass()...
  • 获取class名: this.getClass().getName(); 或 Thread.currentThread().getStackTrace()[1].getClassName(); 获取方法名: Thread.currentThread().getStackTrace()[1].getMethodName(); 获取行号: Thread....
  • 高级 | Java获取类名的3种方法

    万次阅读 2018-05-26 08:40:00
    转载自 高级 | Java获取类名的3种方法获取类名的方法Java获取类名的方式主要有以下三种。getName()返回的是虚拟机里面的class的类名表现形式。getCanonicalName()返回的是更容易理解的类名表示。getSimpleName...
  • Java获取类名的3种方法!

    千次阅读 2018-06-21 21:42:02
    Java获取类名的方式主要有以下三种。 getName() 返回的是虚拟机里面的class的类名表现形式。 getCanonicalName() 返回的是更容易理解的类名表示。 getSimpleName() 返回的是类的简称。 都有什么区别? 通过一个...
  • 为了测试各个函数,如果手动打印每个类名、函数名,那么多函数的话能把人累死,Java早已准备好了一堆记录自身的函数。   获取类名:   public static void testGetClassName() { // 方法...
  • Java获取类名的方式主要有以下三种。 getName() 返回的是虚拟机里面的class的类名表现形式。 getCanonicalName() 返回的是更容易理解的类名表示。 getSimpleName() 返回的是类的简称。 都有什么区别? 通过...
  • 之前我们分享过Java高级篇——深入浅出Java类加载机制这篇文章,今天来带你了解获取类名的三种方法。  获取类名的方法  Java获取类名的方式主要有以下三种。  getName()返回的是虚拟机里面的class的类名...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 246,562
精华内容 98,624
关键字:

java获取所有类名

java 订阅