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

  • cdgotx

    cdgotx

    8 Kasım 2011
  • kylediablo

    kylediablo

    8 Ocak 2007
  • The Slow Mo Guys

    The Slow Mo

    15 AĞUSTOS 2010