如何在方法中返回枚举

时间:2012-11-19 14:38:35

标签: java

Product.java

public interface Product {
    /**
     * use this interface for creating your own enumerate of products
     */
    public static interface Category {
        enum MyCategory {vegetable, fruit, chocolate};   // i create my own enumerate

    }

}

在我的MyProduct.java中我需要实现getCategory()方法

public class MyProduct implements Product {

    @Override
    public Category getCategory() {
     // ???
    }

}

但我不知道如何从接口类别访问枚举,仍然返回类别的变量。请你帮我。 很抱歉我的问题描述不好,但我希望你明白我的需要:)

2 个答案:

答案 0 :(得分:4)

枚举的全名是Product.Category.MyCategory(如果有的话,以包名为前缀)。在Product内,您可以将其写为Category.MyCategory

答案 1 :(得分:0)

如果我正确理解了您的问题,您希望将枚举作为接口返回。 枚举可以实现接口,因此MyCategory可以实现Category

public interface Product {
    /**
     * use this interface for creating your own enumerate of products
     */
    public static interface Category {
        enum MyCategory implements Category {
            vegetable, fruit, chocolate
        }; // i create my own enumerate

    }
    Category getCategory();
}

所以你的产品类可以做到

public class MyProduct implements Product {
    @Override
    public Category getCategory() {
        return Product.Category.MyCategory.chocolate;
    }
}