1998 में, फिलिप वाडलर ने स्थिर इंटरफेस और गैर-स्थिर इंटरफेस के बीच अंतर का सुझाव दिया।
जहाँ तक मैं देख सकता हूँ, इंटरफ़ेस को गैर-स्थिर बनाने में एकमात्र अंतर यह है कि इसमें अब गैर-स्थिर आंतरिक वर्ग शामिल हो सकते हैं; इसलिए परिवर्तन किसी भी मौजूदा जावा प्रोग्राम को अमान्य नहीं करेगा।
उदाहरण के लिए, उन्होंने अभिव्यक्ति समस्या का एक समाधान प्रस्तावित किया , जो एक ओर अभिव्यक्ति के बीच बेमेल है "दूसरी ओर आपकी भाषा में आप जो प्रतिनिधित्व करने का प्रयास कर रहे हैं" के रूप में अभिव्यक्ति "आपकी भाषा कितनी व्यक्त कर सकती है"। ।
उनके नमूना कोड में स्थिर और गैर-स्थिर नेस्टेड इंटरफेस के बीच अंतर का एक उदाहरण देखा जा सकता है :
// This code does NOT compile
class LangF<This extends LangF<This>> {
interface Visitor<R> {
public R forNum(int n);
}
interface Exp {
// since Exp is non-static, it can refer to the type bound to This
public <R> R visit(This.Visitor<R> v);
}
}
उनके सुझाव ने इसे जावा 1.5.0 में कभी नहीं बनाया। इसलिए, अन्य सभी उत्तर सही हैं: स्थिर और गैर-स्थिर नेस्टेड इंटरफेस में कोई अंतर नहीं है।