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

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

有沒有辦法用方法初始化靜態字段?

有沒有辦法用方法初始化靜態字段?

MMTTMM 2023-05-10 17:24:35
如何使用方法初始化類中的字符串數組?private static String[] strNrs2 = {"Zero","One","Two","Three","Four","Five","Six","Seven","Eight","Nine"};  private static String[] colo = arr();private String[] arr(){     String[] str99 = new String[strNrs2.length];     for (int i = 0; i<strNrs2.length;i++){       str99[i]= new StringBuilder(strNrs2[i]).reverse().toString();    }    return str99;    }我要這個 :private static String[] strNrs2 = {"Zero","One","Two","Three","Four","Five","Six","Seven","Eight","Nine"};看起來像這樣: private static String[] strNrs =  {"oreZ","enO","owT","eerhT","ruoF","eviF","xiS","neveS","thgiE","eniN"};但我只想做一次。因為我計劃循環使用該數組的方法數百萬次。因此它會大大降低我的運行速度。完整代碼:  public class IntToStr {  private static String[] strNrs2 = {"Zero","One","Two","Three","Four","Five","Six","Seven","Eight","Nine"};      public static String intToStr(int nr) {        StringBuilder str = new StringBuilder("");        while (nr>0) {           int pop = nr%10;            nr= nr/10;            str.append(new StringBuilder(strNrs2[pop]).reverse().toString());  //By using this str.append(strNrs[pop]); runtime will increase considerably.        }        return str.reverse().toString();    }    public static void main(String[] args) {        for (int i = 0; i<10000000;i++)            intToStr(5555555);            System.out.println("Finished");    }} 
查看完整描述

1 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

下面的數組初始化:

private static String[] colo = arr();

不起作用,因為arr()它是一個非靜態方法,所以它不能在初始化變量的靜態上下文中調用static。

您必須創建arr()一個static方法才能使該static數組初始化工作:

private static String[] arr() {
    ...
}


查看完整回答
反對 回復 2023-05-10
  • 1 回答
  • 0 關注
  • 110 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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