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

  • ELPRESADOR

    ELPRESADOR

    21 HAZİRAN 2008
  • Sam Kear

    Sam Kear

    14 Temmuz 2007
  • Soulkiller13 ツ

    Soulkiller13

    30 Mayıs 2013