怎样用Class类(即类的类)来设置获取的静态变量呢?
鉴于问题可能有点难,先不多给悬赏,答完定加很多分。如classA{staticb;}classC{publicstaticviodmain(Stringargs[]){C...
鉴于问题可能有点难,先不多给悬赏,答完定加很多分。
如
class A{
static b;
}
class C{
public static viod main(String args[]){
Class x = A.class;
//?????我想用x来得到静态变量的值,请不要为我想别的其他办法,这只是个示例程
//序,我的程序要把Class 的x当传参,A也是多态的,必须要用x得到静态变量。
}
} 展开
如
class A{
static b;
}
class C{
public static viod main(String args[]){
Class x = A.class;
//?????我想用x来得到静态变量的值,请不要为我想别的其他办法,这只是个示例程
//序,我的程序要把Class 的x当传参,A也是多态的,必须要用x得到静态变量。
}
} 展开
1个回答
展开全部
用反射可以得到
如果只需要静态变量可以通过x.getModifiers()来判断
import java.lang.reflect.Field;
class A{
public static int a = 4;
public static int b = 5;
private static int c = 6;
}
class C{
public static void main(String args[]) throws Exception{
Class x = A.class;
//?????我想用x来得到静态变量的值,请不要为我想别的其他办法,这只是个示例程
//序,我的程序要把Class 的x当传参,A也是多态的,必须要用x得到静态变量。
Field[] fields = x.getDeclaredFields();
for(int i=0;i<fields.length;i++){
fields[i].setAccessible(true);
if((fields[i].getModifiers() & 8) == 8){
System.out.println(fields[i].get(null));
}
}
}
}
如果只需要静态变量可以通过x.getModifiers()来判断
import java.lang.reflect.Field;
class A{
public static int a = 4;
public static int b = 5;
private static int c = 6;
}
class C{
public static void main(String args[]) throws Exception{
Class x = A.class;
//?????我想用x来得到静态变量的值,请不要为我想别的其他办法,这只是个示例程
//序,我的程序要把Class 的x当传参,A也是多态的,必须要用x得到静态变量。
Field[] fields = x.getDeclaredFields();
for(int i=0;i<fields.length;i++){
fields[i].setAccessible(true);
if((fields[i].getModifiers() & 8) == 8){
System.out.println(fields[i].get(null));
}
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询