كيفية بناء واجهة مثل هذا التعداد
سؤال
لدي التالية التعداد:
public enum Status implements StringEnum{
ONLINE("on"),OFFLINE("off");
private String status = null;
private Status(String status) {
this.status = status;
}
public String toString() {
return this.status;
}
public static Status find(String value) {
for(Status status : Status.values()) {
if(status.toString().equals(value)) {
return status;
}
}
throw new IllegalArgumentException("Unknown value: " + value );
}
}
هل من الممكن لبناء StringEnum واجهة للتأكد من أن كل التعداد قد تجد () ، toString() و منشئ ؟
شكرا
المحلول
ليس من الممكن تحديد إما منشئات أو أساليب ثابتة في واجهة.جيد ومختصر تفسير, تحقق من هذه المادة: لا أساليب ثابتة في واجهات
نصائح أخرى
Enums بالفعل valueOf() (بك تجد طريقة طريقة).و "toString()" هو جافا.لانغ.أسلوب كائن ، لذا ، سيكون على كل صف ، وبعبارة أخرى, لا يمكنك أن تجبر عليه!لا أستطيع أن أرى قيمة إنفاذ منشئ منذ المختلفة enums أن تكون التهيئة.
مع أطيب التحيات
- أساليب ثابتة لا يمكن تعريفها في واجهات
- منشئات لا يمكن تعريفها في واجهات
toString
ويعرف فيjava.lang.Object
, تتطلب في واجهة لن يؤدي إلى خطأ ترجمة إذا كان الأسلوب ليست محددة.
لماذا تريد فرض البناء على أية حال ؟ لا يمكن إنشاء مثيلات جديدة enum
s في وقت التشغيل على أي حال (إلا ربما عبر بعض آلية التفكير).
لا تنتمي إلى StackOverflow