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

  • Day9TV

    Day9TV

    22 NİSAN 2010
  • Digital Bounds

    Digital Boun

    19 Temmuz 2013
  • Jonnyriddlin1

    Jonnyriddlin

    4 Ocak 2007