<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    午夜拍鍵驚奇
    子夜 編程 代碼與我同在
    posts - 48,comments - 118,trackbacks - 79

    一、illegal forward refrence

    前天寫一個類時遇到一個很眼生的編譯錯誤(問題簡化后):

    1punlic final class Constants{
    2  public static int VAR2 = VAR1 + 1;
    3  public static int VAR1 = 1;
    4}

    編譯時出錯(第2行):

    illegal forward refrence

    仔細一想,是因為VAR2引用的VAR1在VAR2之后定義,看來在Java中定義static變量時應遵循“聲明先于使用”的原則。

     

    二、static塊

    還是上一個類,VAR1和VAR2定義成final,值存在一個properties文件中,在使用前必須將值load進來:

    System.getProperties().load(new FileInputStream("constants.properties"));

    于是將上面的代碼放在static塊中:

    punlic final class Constants{
      
    static{
        System.getProperties().load(
    new FileInputStream("constants.properties"));
      }


      
    public static final int VAR2 = System.getProperties().getProperty("var2");

      
    public static final int VAR1 = System.getProperties().getProperty("var1");
    }


    但在運行時VAR1和VAR2沒有被賦值,debug后發現static塊根本沒有執行。于是頓悟:final變量在編譯時便被編譯器計算、賦值,因此在運行時沒有必要執行static塊。

    posted on 2005-08-04 12:27 ^ Mustang ^ 閱讀(519) 評論(0)  編輯  收藏 所屬分類: Java 點滴
    主站蜘蛛池模板: 亚洲剧场午夜在线观看| 伊人久久综在合线亚洲2019| 亚洲av乱码中文一区二区三区| 午夜国产精品免费观看| 亚洲精品电影天堂网| 日本免费网站视频www区| 亚洲第一二三四区| 波多野结衣免费在线观看| 亚洲午夜电影在线观看高清| 久久精品国产免费观看三人同眠| 中文字幕亚洲色图| 999久久久免费精品国产| 亚洲成a人片在线看| 最近的免费中文字幕视频| 亚洲精品无码永久在线观看男男| 成年轻人网站色免费看| 亚洲gay片在线gv网站| 波多野结衣中文一区二区免费| 999久久久免费精品国产| 亚洲最大的黄色网| 狼友av永久网站免费观看| 狠狠入ady亚洲精品| 亚洲天堂在线视频| 免费人成黄页在线观看日本| 亚洲国语精品自产拍在线观看| 美丽的姑娘免费观看在线播放| 中文字幕乱码亚洲无线三区 | 中文字幕免费在线视频| 久久亚洲精品国产精品黑人| 无码区日韩特区永久免费系列 | 亚洲中文字幕乱码一区| 午夜国产羞羞视频免费网站| 久久精品成人免费观看97| 中文字幕亚洲精品资源网| 午夜男人一级毛片免费| 两个人日本WWW免费版| 亚洲春色另类小说| 五月婷婷亚洲综合| 亚洲综合av一区二区三区| 亚洲视频在线免费| 亚洲免费二区三区|