4 回答

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊
已經(jīng)有一些很好的答案,解釋了為什么非靜態(tài)Context
方法的混合物getText()
不能用于你的static final String
。
一個(gè)很好的問(wèn)題是:你為什么要這樣做?您正在嘗試String
從strings
資源加載a ,并將其值填充到public static
字段中。我認(rèn)為這是為了讓你的其他一些類可以訪問(wèn)它?如果是這樣,就沒(méi)有必要這樣做了。而是將a傳遞Context
到您的其他類并context.getText(R.string.TTT)
從其中調(diào)用。
public class NonActivity { public static void doStuff(Context context) { String TTT = context.getText(R.string.TTT); ... }}
并從你這稱呼Activity
:
NonActivity.doStuff(this);
這將允許您訪問(wèn)您的String
資源,而無(wú)需使用public static
字段。

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊
對(duì)于在搜索中找到此內(nèi)容的其他人:
當(dāng)我不小心使用類名而不是對(duì)象名調(diào)用函數(shù)時(shí),我經(jīng)常得到這個(gè)。這通常是因?yàn)槲医o他們太相似的名字:P
即:
MyClass myclass = new MyClass();// then laterMyClass.someFunction();
這顯然是一種靜態(tài)方法。(對(duì)某些事情有好處)但我真正想做的事情(在大多數(shù)情況下是)
myclass.someFunction();
這是一個(gè)如此愚蠢的錯(cuò)誤,但每隔幾個(gè)月,我浪費(fèi)了大約30分鐘搞亂“MyClass”定義中的變量來(lái)解決我真正做錯(cuò)的事情,這只是一個(gè)錯(cuò)字。
有趣的說(shuō)明:堆棧溢出突出了語(yǔ)法,使錯(cuò)誤在這里顯而易見(jiàn)。
添加回答
舉報(bào)