SORU
5 Ocak 2014, Pazar


Final arasındaki fark ve son etkili

Java 8 Lambda ile oynuyorum ve üzerinde local variables referenced from a lambda expression must be final or effectively final uyarı geldi. Anonim sınıf içinde değişkenleri kullanmak arasındaki fark nedir dış sınıf, ama yine de son olduğunu biliyorumsonveetkili bir final?

CEVAP
5 Ocak 2014, Pazar


Ancak, 8, yerel bir sınıf Java SE başlayarak etkili olarak son nihai olduğunu kapsayan bloğu yerel değişkenler ve parametreler erişebilirsiniz.Hiç başlatıldıktan sonra değişmiş olan bir değişken veya parametre etkin bir biçimde kesindir.

Örneğin, değişken numberLength son bildirilmedi varsayalım, ve PhoneNumber kurucu belirgin atama deyimi ekleyin:

PhoneNumber(String phoneNumber) {
    numberLength = 7;   // <== assignment to numberLength
    String currentNumber = phoneNumber.replaceAll(
        regularExpression, "");
    if (currentNumber.length() == numberLength)
        formattedPhoneNumber = currentNumber;
    else
        formattedPhoneNumber = null;
}

Bu atama ifadesi nedeniyle, değişken numberLength etkili bir son değil artık.Sonuç olarak, Java derleyici benzer bir hata iletisi oluşturur "yerel değişkenler içsel bir sınıftan başvurulan ve etkili final son olmalı"iç sınıf PhoneNumber numberLength değişkenine erişmeye çalışır:

http://codeinventions.blogspot.in/2014/07/difference-between-final-and.html

http://docs.oracle.com/javase/tutorial/java/javaOO/localclasses.html

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bombjack2991

    bombjack2991

    29 HAZİRAN 2008
  • EEVblog

    EEVblog

    4 NİSAN 2009
  • Schmittastic Jr.

    Schmittastic

    19 Mart 2013