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

  • Chip Johnson

    Chip Johnson

    30 AĞUSTOS 2007
  • 趣味そうこ♪

    趣味そう

    3 Mart 2010
  • MW Technology

    MW Technolog

    28 EKİM 2009