SORU
8 Aralık 2012, CUMARTESİ


Neden't nitelikli static final değişken statik başlatma bloğu yasaktır?

Durum 1

class Program {
    static final int var;

    static {
        Program.var = 8;  // Compilation error
    }

    public static void main(String[] args) {
        int i;
        i = Program.var;
        System.out.println(Program.var);
    }
}

2 durumda

class Program {
    static final int var;

    static {
        var = 8;  //OK
    }

    public static void main(String[] args) {
        System.out.println(Program.var);
    }
}

Neden yaparDurum 1derleme hatası neden?

CEVAP
8 Aralık 2012, CUMARTESİ


Bu İDEA cevabı (cesur açıklama not) tutar:

Benzer şekilde, her boş son değişken en fazla bir kez atanmış olmalı; olmalıkesinlikle atanmamışbunun için bir görev olduğunda.Böyle bir görev tanımlı meydana geliyorsa ve ya da yalnızca basit bir isim değişkeni (veya bir alan, basit adı bu) oluşur Sol tarafta bir atama operatörü.[§16]

Bu 'basit adı' static final değişkenler - yani var adı, herhangi bir eleme olmadan atarken kullanılmalıdır. anlamına gelir

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DominicFear

    DominicFear

    30 Kasım 2006
  • LevelUpTuts

    LevelUpTuts

    20 Ocak 2012
  • Shon Gonzales

    Shon Gonzale

    5 EKİM 2014