我有很多類具有相同的靜態屬性(staticAttr),我有另一個類,它接受類名稱並訪問其指定類名稱的staticAttr。 我該如何做到這一點。請幫幫我! 謝謝。如何通過Java中的類名訪問靜態變量?
編輯:
public class Group_name1 extends Activity implements View.OnClickListener,
{
public static Group_name1 staticVar;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.group_name1);
staticVar = this;
}
}
public class Group_name2 extends Activity implements View.OnClickListener,
{
public static Group_name2 staticVar;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.group_name2);
staticVar = this;
}
}
現在我的問題是有由只給一個類名字符串中的另一個類,這些類的靜態變量的訪問。現在該類應該可以用來獲取包含該對象的staticVar。
目前,我已經爲上面提到的每個類創建了單獨的類來引用staticVar。但是我覺得它的編程風格是多餘的和糟糕的,因爲我爲編寫上面的類所寫的每個類都具有相同的功能。唯一改變的是類名參考
Group_name1 grpActivity; Group_name2 grpActivity;
這些是我目前的實現。但我想只使用類名來引用靜態變量
class GroupNameListener1 extends Thread
{
Group_name1 grpActivity;
public void run()
{
grpActivity = Group_name1.staticVar;
/*
do something
*/
}
}
class GroupNameListener2 extends Thread
{
Group_name2 grpActivity;
public void run()
{
grpActivity = Group_name2.staticVar;
/*
do something
*/
}
}
使用反射盧克http://docs.oracle.com/javase/tutorial/reflect/ –
你可以使用反射,但可以得到混亂。爲什麼不用一個通用的接口來實現你的所有類,並且定義一個靜態方法(而不是靜態變量),每個類都可以實現返回。 – JonathanS
請檢查我的編輯。 – Vamshi