3

产品.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() {
     // ???
    }

}

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

4

2 回答 2

4

枚举的全名是Product.Category.MyCategory(如果有的话,以包名为前缀)。内Product,你可以这样写Category.MyCategory

于 2012-11-19T14:39:33.323 回答
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;
    }
}
于 2012-11-19T14:45:13.140 回答