<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 點滴
    主站蜘蛛池模板: 国产成人1024精品免费| 国产成人不卡亚洲精品91| 久久国产精品免费视频| 久久国产亚洲精品麻豆| 在线免费观看伊人三级电影| 自拍偷自拍亚洲精品第1页| www成人免费视频| 亚洲人成中文字幕在线观看| 福利免费在线观看| 国产亚洲精品资源在线26u| 99久久成人国产精品免费| 亚洲AV成人一区二区三区AV| 天天影视色香欲综合免费| ass亚洲**毛茸茸pics| 日韩一品在线播放视频一品免费| 在线观看亚洲网站| 亚洲区不卡顿区在线观看| 拍拍拍无挡免费视频网站| 亚洲视频手机在线| 午夜老司机免费视频| 人与动性xxxxx免费| 久久久久亚洲精品美女| 黄瓜视频影院在线观看免费| 亚洲av色香蕉一区二区三区| 亚洲阿v天堂在线2017免费| 成人爽a毛片免费| 国产精品亚洲午夜一区二区三区 | 亚洲国产日韩在线成人蜜芽 | aⅴ在线免费观看| 亚洲变态另类一区二区三区| 亚洲精品国产V片在线观看| 美女视频黄的免费视频网页| 亚洲人成在线免费观看| 亚洲国产精品视频| 91短视频在线免费观看| 亚洲av无码成人精品国产| 亚洲网站在线观看| 亚洲精品第一国产综合精品99| 美女内射无套日韩免费播放| 亚洲AV成人片无码网站| 337p日本欧洲亚洲大胆色噜噜|