SORU
11 HAZİRAN 2015, PERŞEMBE


Neden değil't son bir değişken her zaman sabit bir ifade?

Aşağıdaki kodu için:

final int a;
a=2;
byte b=a;   // error: possible loss of precision

Neden bu hatayı alıyorum? a son değişken sürekli ifade ve örtülü olarak daralmış dolayısıyla atama sırasında byte derlemek değil mi?

Diğer bir deyişle, değil yukarıdaki kodun eşdeğeri:

final int a=2;
byte b=a;

CEVAP
11 HAZİRAN 2015, PERŞEMBE


JLS

Birboş finalbir başlatıcı yoksun olan final bir değişkendir.

Sürekli bir değişken ilkel türü veya türü final bir değişkendir String sabit bir ifade (§15.28) ile başlatıldı.

Sizin değişken

final int a;

birboş finaldeğişken. Bir başlatıcı yoksun. İkinci paragraf beyan başlatıldı olmadığından geçerli değildir. Bu nedenle sabit bir ifade değil.

Bu alanlar için de geçerlidir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bombjack2991

    bombjack2991

    29 HAZİRAN 2008
  • GALERNAYA20

    GALERNAYA20

    19 NİSAN 2011
  • Matt Stokes

    Matt Stokes

    22 Ocak 2008