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

  • BigDawsTv

    BigDawsTv

    20 HAZİRAN 2012
  • Christian Atlas

    Christian At

    26 Mart 2009
  • Fraser Raft

    Fraser Raft

    9 Mart 2010