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

publicclassA{privateBb;publicBgetB(){returnb;}publicvoidsetB(Bb){this.b=b;}staticclas... public class A{
private B b;

public B getB() {
return b;
}

public void setB(B b) {
this.b = b;
}

static class B{
private C c;
public C getC() {
return c;
}
public void setC(C c) {
this.c = c;
}
}
static class C {
private Integer a;

public Integer getA() {
return a;
}
public void setA(Integer a) {
this.a = a;
}
}
}
如何获取C类的变量a
展开
 我来答
趣事情
2016-01-25 · 知道合伙人互联网行家
趣事情
知道合伙人互联网行家
采纳数:517 获赞数:5452
电脑技术,软件开发。移动开发。网站建设相关专业知识。都可以提供解答和相关技术指导。

向TA提问 私信TA
展开全部
静态方法不与特定实例关联,不能引用this,要得到当前类名,没有直接的办法。
通过查资料和试验,可以用下面几种方式:
public static void testGetClassName()
{
// 方法1:通过SecurityManager的保护方法getClassContext()
String clazzName = new SecurityManager()
{ public String getClassName()
{
return getClassContext()[1].getName();
}
}.getClassName();
System.out.println(clazzName);
// 方法2:通过Throwable的方法getStackTrace()
String clazzName2 = new Throwable().getStackTrace()[1].getClassName();
System.out.println(clazzName2);
// 方法3:通过分析匿名类名称()
String clazzName3 = new Object() {
public String getClassName()
{
String clazzName = this.getClass().getName();
return clazzName.substring(0, clazzName.lastIndexOf('$'));
}
}.getClassName();
System.out.println(clazzName3);
}
分别调用10万次,
方法1:219ms
方法2:953ms
方法3:31ms
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式