有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java将枚举强制转换为类

我有一个与enum相同的类。唯一的区别是我创建了类,这样我就可以动态地创建枚举。我想要的是重写enum的强制转换操作,这样我就可以将enum实例提供给一个方法,该方法从中获取类实例

例如:

public enum SpecialEnum {
    FIRST("First"), SECOND("Second");

    private String name;

    SpecialEnum(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

public class SpecialClass {
    private String name;

    public SpecialClass(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

public void displayName(SpecialClass specialClass) {
    System.out.println(specialClass.getName());
}

假设SpecialClass实例来自我显示它们的服务器。但我也希望使用预定义的特殊枚举类。我知道我可以创建SpecialClass的静态实例并使用它们,但这看起来并不凌乱,而且使用枚举也有利于我的工作。有没有一种方法可以覆盖工作区枚举类的强制转换操作


共 (1) 个答案

  1. # 1 楼答案

    提取一个interface

    public interface Named {
        public String getName();
    }
    
    public class SpecialClass implements Named {
        private String name;
    
        public SpecialClass(String name) {
            this.name = name;
        }
    
        @Override
        public String getName() {
            return name;
        }
    }
    
    public enum SpecialEnum implements Named {
        FIRST("First"), SECOND("Second");
    
        private String name;
    
        SpecialEnum(String name) {
            this.name = name;
        }
    
        @Override
        public String getName() {
            return name;
        }
    }
    
    public void displayName(Named specialClass) {
        System.out.println(specialClass.getName());
    }