最近,我发现了以下结构的代码:
接口:
public interface Base<T> {
    public T fromValue(String v);
}
枚举实现:
public enum AddressType implements Base<AddressType> {
    NotSpecified("Not Specified."),
    Physical("Physical"),
    Postal("Postal");
    private final String label; 
    private AddressType(String label) { 
        this.label = label; 
    } 
    public String getLabel() { 
        return this.label; 
    }
    @Override
    public AddressType fromValue(String v) {
        return valueOf(v);
    }
}
我的直接反应是无法通过反序列化或反射创建枚举实例,因此fromValue()应该是静态的。
我不是要开始辩论,但这是正确的吗?我读过,为什么 Enum 会实现一个接口,我完全同意所提供的答案,但上面的例子是无效的。
我这样做是因为“建筑师”不想接受我的回答,所以这是为了创造一个强有力的论据(有事实)为什么上述方法是好/坏的。