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

  • Curso Online Gratuito

    Curso Online

    4 Aralık 2011
  • GenTechPC

    GenTechPC

    1 Temmuz 2007
  • TheMasterOfHell100

    TheMasterOfH

    13 AĞUSTOS 2011