java如何获取内部静态类变量

java如何获取内部静态类变量,第1张

静态方法不与特定实例关联,不能引用this,要得到当前类名,没有直接的办法。

通过查资料和试验,可以用下面几种方式:

public static void testGetClassName()

{

// 方法1:通过SecurityManager的保护方法getClassContext()

String clazzName = new SecurityManager()

{ public String getClassName()

{

return getClassContext()[1]getName();

}

}getClassName();

Systemoutprintln(clazzName);

// 方法2:通过Throwable的方法getStackTrace()

String clazzName2 = new Throwable()getStackTrace()[1]getClassName();

Systemoutprintln(clazzName2);

// 方法3:通过分析匿名类名称()

String clazzName3 = new Object() {

public String getClassName()

{

String clazzName = thisgetClass()getName();

return clazzNamesubstring(0, clazzNamelastIndexOf('$'));

}

}getClassName();

Systemoutprintln(clazzName3);

}

分别调用10万次,

方法1:219ms

方法2:953ms

方法3:31ms

静态方法method(),只能把属性也要设置成static的,才能访问到你的属性

但是你的目的:在方法体内部想获取当前所属类的类型信息

建议你可以这样:举个小例子

class

demo

{

private

int

num;

public

demo(){}

public

int

getNum()

{

return

thisnum;

}//这个方法就很轻松的获取你的属性的信息;

}

o(∩_∩)o希望你明白

这是不可能的,static方法不隶属于任何类/对象,所以无从获取。static的内容由JVM统一管理,甚至都不在堆上

看了你的补充说明。如果是想知道本静态方法在哪个类被实现真的不可行,你的程序设计有错误。如果你是想读取工作目录下的一个文件,你只能知道改工作目录的磁盘路径,而文件名(类名)必须手工写明,无法自动获取。

以上就是关于java如何获取内部静态类变量全部的内容,包括:java如何获取内部静态类变量、Java静态方法获取所属类的信息、Java代码中,如何在静态(由static关键字修饰)方法或静态代码块中(static{})获取当前类的位置。。。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9642188.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存