java - (JAVA Enums) - 枚举常量内的匿名类

标签 java enums anonymous-class

美好的一天!

我有一个仅实现一个方法的接口(interface)。我不想创建几个都实现这一单一方法的类,因此我决定使用匿名类。

我对某些静态项目使用枚举,这些枚举具有我的界面的实例。然而,当我尝试在枚举常量中创建一个匿名类时,我的 IDE (eclipse) 实际上什么也没告诉我(就好像它在代码块之外一样)。

我的问题如下:我可以在枚举常量中使用匿名类吗?

如果我的文字不清楚(抱歉我不是英语),请参阅下面的示例。

代码示例

/**
 * My Interface 
 */

public interface IPotato {

    public void eatPotato();
} 

/**
* My enum class
*/
    public enum PotatoEnum {

        I_WANT_TO_EAT_POTATO(new IPotato() {
            @Override
            public void eatPotato() {
                // Cant put code here.
            } });

        private IPotato _myAnonymousClass;
        private PotatoEnum(IPotato anonymousClass){
            this._myAnonymousClass = anonymousClass;
        }

        public IPotato getPotato(){
            return _myAnonymousClass;
        }

    }

最佳答案

您可以这样做,这是一个完全有效的解决方案。

作为建议,让您的枚举实现您的接口(interface)以使代码更具可读性:

public enum PotatoEnum implements IPotato{

        I_WANT_TO_EAT_POTATO(){

            @Override
            public void eatPotato() {
                // Cant put code here.

            }},//more ENUMS ;

    }

关于java - (JAVA Enums) - 枚举常量内的匿名类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35156587/

相关文章:

java - 匿名类的对象类型是什么

java - 对匿名类与匿名内部类感到困惑

objective-c - Objective-C 中的匿名委托(delegate)实现?

c++ - 在 C++ 中创建具有随机枚举类型的 Card 对象

struct - swift 如何在构造结构时使用枚举作为参数?

java - 内存泄漏,Android 的 Spring

java - 在 tomcat 8 上使用 Servlets 3.1 的非阻塞 I/O 特性

c# - 按位或 | 是什么意思运营商呢?

java - 证明这个类是线程安全的?

java - 尝试填充 JPanel 时图形中出现 NullPointerException