SORU
24 ŞUBAT 2011, PERŞEMBE


Nasıl anonim bir sınıf için parametreleri geçirmek için?

İsimsiz bir sınıf için parametreleri veya dış erişim parametreleri geçirmek mümkün mü? Örneğin:

int myVariable = 1;

myButton.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        // How would one access myVariable here?
    }
});

MyVariable erişim veya myVariable gerçek bir sınıf olarak isimlendirilen dinleyici oluşturmadan geçirilecek dinleyici için herhangi bir yolu var mı?

CEVAP
30 AĞUSTOS 2012, PERŞEMBE


Evet, başlatıcı bir yöntem ekleyerek döndüren 'bu', ve hemen bu yöntem arama:

int myVariable = 1;

myButton.addActionListener(new ActionListener() {
    private int anonVar;
    public void actionPerformed(ActionEvent e) {
        // How would one access myVariable here?
        // It's now here:
        System.out.println("Initialized with value: "   anonVar);
    }
    private ActionListener init(int var){
        anonVar = var;
        return this;
    }
}.init(myVariable)  );

Hayır 'son' Deklarasyonu gerekli.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • My name is Festis and I'm free

    My name is F

    2 EKİM 2011
  • Helen Bradley

    Helen Bradle

    4 Mart 2008
  • ShotgunSandwichENT

    ShotgunSandw

    3 EKİM 2012