如何使用一个标识符访问多个类的字段

如何使用一个标识符访问多个类的字段

问题描述:

我创建了5个具有相同名称的静态变量的类。如何使用一个标识符访问多个类的字段

class A 
{ 
public static int a; 
//other vatiables 
} 
class B 
{ 
public static int a; 
//other variables 
} 

....等等。

现在我想要做的就是使用相同的标识符访问这些静态变量以减少歧义。

void printAll(String className) 
{ 
//prints all the variables of className 
} 

所以我想只能用这个方法之一打印任何特定类别的值。

有没有这样做的方式没有反射。

+1

什么阻止你在做'的System.out.println(A.A); System.out.println(B.a);'? –

+0

问题是我在每个类中有20个变量具有相同的名称,我试图做一种方法,它可以打印所有的变量,只是它们的类名,而不是为每个类创建单独的方法 – NoNoob

+1

为什么每个类都有20个静态变量这似乎彼此相似?这听起来像是我的一个主要设计缺陷。 – Synch

有没有这样做的方式没有反射。

对于具有static修饰符的字段,您没有其他方法。
为了能够做到没有反射,你应该使用多态性功能。
但这只适用于实例方法。

至于解决方法,你可以定义依赖于static领域int getA()实例方法,并允许调用上有a领域的任何类中的方法,定义一个接口,这个实例方法。

接口:

public interface CommonData{ 
    int getA(); 
} 

A类:

class A implements CommonData { 

    public static int a; 

    public int getA(){ 
    return int a; 
    } 
} 

B类:

class B implements CommonData { 

    public static int a; 

    public int getA(){ 
    return int a; 
    } 
} 
+0

我修改了这个问题,希望你能理解我想要的 – NoNoob