
静态方法不与特定实例关联,不能引用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
话不多说,直接上程序:
public class A{
private int a;
public int getA(){return a;}
}
public class B{
public void getAFromB(){
A a = new A();
Systemoutprintln(agetA());
}
}
这样就可以从B里面获取A里面的变量的值了。
子类的方法和属性如果是父类中没有的,那又能够父类声明,子类实例化的对象就不可以使用。
class a{
int i;
void g(){}
}
class b extends a{
int k;
void h(){}
}
a pro = new b();
那么pro只能使用i和g()不能使用k和h()
楼主明白了吗
以上就是关于java如何获取内部静态类变量全部的内容,包括:java如何获取内部静态类变量、一个工程中,怎么让一个java文件获得另一个java文件中定义的变量的值、Java 类 类变量 属性与方法的引用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)