<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 點滴
    主站蜘蛛池模板: 妞干网免费观看视频| 免费国产叼嘿视频大全网站| 日韩精品成人无码专区免费 | 成年女人午夜毛片免费看| 亚洲综合国产精品| 最近中文字幕大全免费视频 | 久久青草免费91线频观看不卡 | 亚洲第一成年免费网站| 亚洲中文字幕无码久久| 最近的中文字幕大全免费版| 亚洲丰满熟女一区二区哦| 免费精品国产自产拍观看| 免费看一级一级人妻片| 亚洲人成网站色在线入口| av网站免费线看| 亚洲AV无码专区在线播放中文 | 四虎影视久久久免费| 亚洲日韩av无码| 免费人成在线观看网站品爱网 | 亚洲精品日韩专区silk| 久草在视频免费福利| 亚洲爆乳大丰满无码专区 | 亚洲精品国产自在久久| 久久一区二区三区免费播放| 亚洲视频国产视频| 日韩人妻无码免费视频一区二区三区 | 婷婷久久久亚洲欧洲日产国码AV| 真人无码作爱免费视频| 亚洲熟妇少妇任你躁在线观看无码| 日韩大片在线永久免费观看网站| 亚洲一区二区视频在线观看| 一级做a爰全过程免费视频| 亚洲免费二区三区| 免费人成年激情视频在线观看| gogo免费在线观看| 亚洲国产天堂久久综合网站| 成人免费无码大片a毛片| 成年免费a级毛片免费看无码| 亚洲人成色7777在线观看| 波多野结衣在线免费视频| 偷自拍亚洲视频在线观看|