मैं इस आवश्यकता पर विचार करता हूं कि फ़ील्ड अंतिम रूप से प्रतिबंधात्मक हो और जावा भाषा डिजाइनरों द्वारा एक गलती हो। ऐसे समय होते हैं, जैसे पेड़ से निपटने, जब आपको कार्यान्वयन में स्थिरांक स्थापित करने की आवश्यकता होती है जो इंटरफ़ेस प्रकार की वस्तु पर संचालन करने के लिए आवश्यक होते हैं। कार्यान्वयन वर्ग पर एक कोड पथ का चयन करना एक कीचड़ है। वर्कअराउंड जो मैं उपयोग करता हूं, वह एक इंटरफ़ेस फ़ंक्शन को परिभाषित करता है और इसे एक शाब्दिक रिटर्न द्वारा कार्यान्वित करता है:
public interface iMine {
String __ImplementationConstant();
...
}
public class AClass implements iMine {
public String __ImplementationConstant(){
return "AClass value for the Implementation Constant";
}
...
}
public class BClass implements iMine {
public String __ImplementationConstant(){
return "BClass value for the Implementation Constant";
}
...
}
हालाँकि, इस सिंटैक्स का उपयोग करने के लिए इसे लागू करना सरल, स्पष्ट और कम प्रवण होगा:
public interface iMine {
String __ImplementationConstant;
...
}
public class AClass implements iMine {
public static String __ImplementationConstant =
"AClass value for the Implementation Constant";
...
}
public class BClass implements iMine {
public static String __ImplementationConstant =
"BClass value for the Implementation Constant";
...
}