जावा अनाम वर्ग से "यह" एक्सेस करें


143

निम्नलिखित कोड दिया गया है:

public interface Selectable {
  public void select();
}

public class Container implements Selectable {
  public void select() {
  ...
  }
  public void createAnonymousClass() {
    Selectable s = new Selectable() {
      public void select() {
        //see comment below.
      }
    };
  }
}

मैं Container.select()अपने अनाम वर्ग की select()पद्धति से पहुँचना चाहता हूँ । हालांकि, this.select()फिर से गुमनाम वर्ग की select()पद्धति को फिर से कहा जाएगा ।

मेरा सुझाव होगा:

एक क्षेत्र को कंटेनर में पेश करें, जैसे

private Container self = this;

अब मैं अनाम वर्ग के भीतर से Container.select()कॉल करके पहुँच सकता हूँ self.select()

क्या यह एक उचित तरीका है? या कोई बेहतर तरीके हैं?

जवाबों:


268
Container.this.select();

3
मुझे यह भी नहीं पता था कि thisखोजशब्दों को केवल विधियों और विशेषताओं के रूप में विभेदित किया जा सकता है। +1
logo_writer

यह ध्यान दिया जाना चाहिए कि आपको Containerयहां सटीक क्लास निर्दिष्ट करनी होगी । इसके पूर्वजों में से कोई भी स्वीकार नहीं किया जाएगा।
13

42

आप Container.this.select()आंतरिक वर्ग से अलग करने के लिए लिख सकते हैं !

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.