亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法對非靜態方法進行靜態引用

無法對非靜態方法進行靜態引用

無法對非靜態方法進行靜態引用Java構建多語言應用程序。從R.string資源XML文件插入String值時出錯:public static final String TTT =  (String) getText(R.string.TTT);這是錯誤消息:錯誤:無法從Context類型對非靜態方法getText(int)進行靜態引用這是怎么造成的,我該如何解決?
查看完整描述

4 回答

?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

已經有一些很好的答案,解釋了為什么非靜態Context方法的混合物getText()不能用于你的static final String。

一個很好的問題是:你為什么要這樣做?您正在嘗試Stringstrings資源加載a ,并將其值填充到public static字段中。我認為這是為了讓你的其他一些類可以訪問它?如果是這樣,就沒有必要這樣做了。而是將a傳遞Context到您的其他類并context.getText(R.string.TTT)從其中調用。

public class NonActivity {

    public static void doStuff(Context context) {
        String TTT = context.getText(R.string.TTT);
        ...
    }}

并從你這稱呼Activity

NonActivity.doStuff(this);

這將允許您訪問您的String資源,而無需使用public static字段。


查看完整回答
反對 回復 2019-05-28
?
慕碼人8056858

TA貢獻1803條經驗 獲得超6個贊

對于在搜索中找到此內容的其他人:

當我不小心使用類名而不是對象名調用函數時,我經常得到這個。這通常是因為我給他們太相似的名字:P

即:

MyClass myclass = new MyClass();// then laterMyClass.someFunction();

這顯然是一種靜態方法。(對某些事情有好處)但我真正想做的事情(在大多數情況下是)

myclass.someFunction();

這是一個如此愚蠢的錯誤,但每隔幾個月,我浪費了大約30分鐘搞亂“MyClass”定義中的變量來解決我真正做錯的事情,這只是一個錯字。

有趣的說明:堆棧溢出突出了語法,使錯誤在這里顯而易見。


查看完整回答
反對 回復 2019-05-28
  • 4 回答
  • 0 關注
  • 2560 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號