为了能到远方,脚下的每一步都不能少.|

玩单机的零度

园龄:2年3个月粉丝:1关注:8

枚举进阶使用

👻枚举单例

/**
 * 枚举单例
 */
public enum SingletonEnum {

    INSTANCE;

    private final NewInstance newInstance;

    SingletonEnum() {
        this .newInstance =  new NewInstance();
    }

    public NewInstance getInstance() {
        return newInstance;
    }

}

/**
 * instance
 */
public class NewInstance {
    public NewInstance() {
        System.out.println( "-------------- New Instance -------------" );
    }

    public void doSomething(){
        System.out.println( "单例调用方法的具体逻辑!!" );
    }
}

/**
* test
*/
public class Test {
    public static void main(String[] args) {
        // 枚举单例的使用
        NewInstance instance = SingletonEnum.INSTANCE.getInstance();
        instance.doSomething();
    }
}

 

🤡枚举对接口的支持

 

// 接口一
public interface ITest {
    /**
     * 普通无返回值、无参方法
     */
    void describe();
}

// 接口二
public interface ITest2 {
    /**
     * 普通有返回值、有参方法
     */
    String show(String id);

    /**
     * default method
     */
    default void showSec(){
        System.out.println("这就是个默认方法!");
    }
}

// 枚举实现接口一、接口二
public enum TestEnum implements ITest, ITest2{

    SPRING() {
        @Override
        public String show(String id) {
            return "SPRING" + id;
        }

        @Override
        public void describe() {
            System.out.println("春江水阿暖鸭先知");
        }

        @Override
        public void showSec() {
            System.out.println("这是修改后的默认方法!");
        }
    },
    SUMMER() {
        @Override
        public String show(String id) {
            return "SUMMER" + id;
        }

        @Override
        public void describe() {
            System.out.println("我爱山中夏,空冥花雨下。");
        }
    },
    AUTUMN(){
        @Override
        public String show(String id) {
            return "AUTUMN" + id;
        }

        @Override
        public void describe() {
            System.out.println("停车坐爱枫林晚,霜叶红于二月花。");
        }
    },
    WINTER() {
        @Override
        public String show(String id) {
            return "WINTER" + id;
        }

        @Override
        public void describe() {
            System.out.println("北国风光,千里冰封,万里雪飘。");
        }
    },
    ;

}

// test
public class Test {
    public static void main(String[] args) {

        // 对于默认方法的调用和重写调用
        TestEnum.SPRING.showSec();
        TestEnum.WINTER.showSec();

        // 通过枚举name调用方法
        String name = TestEnum.SUMMER.name();
        TestEnum.valueOf(name).describe();
    }
}

 

本文作者:玩单机的零度

本文链接:https://www.cnblogs.com/cxyfyf/p/16968871.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   玩单机的零度  阅读(17)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起