Alanların son derece kısıtlayıcı olması gerekliliğini ve Java dili tasarımcılarının bir hatası olduğunu düşünüyorum. Arayüz tipindeki bir nesne üzerinde işlemler gerçekleştirmek için gerekli olan uygulamada sabitleri ayarlamanız gereken zamanlar vardır, örneğin ağaç işleme. Uygulama sınıfında bir kod yolu seçmek bir kludge'dir. Kullandığım geçici çözüm, bir arabirim işlevi tanımlamak ve bir değişmez değer döndürerek onu uygulamaktır:
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";
}
...
}
Bununla birlikte, bu sözdizimini kullanmak daha basit, daha net ve anormal uygulamaya daha az eğilimli olacaktır:
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";
...
}