3

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

}

しかし、インターフェイスCategoryからenumerateにアクセスし、Categoryの変数を返す方法がわかりません。コンあなたは私を助けてください。私の問題の悪い説明で申し訳ありませんが、私が必要なものを理解していただければ幸いです:)

4

2 に答える 2

4

列挙型のフルネームは次のようになりますProduct.Category.MyCategory(パッケージ名が前に付いている場合)。内でProductは、それをちょうどのように書くことができますCategory.MyCategory

于 2012-11-19T14:39:33.323 に答える
0

私があなたの質問を正しく理解していれば、enum を Interface として返す必要があります。列挙型はインターフェイスを実装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 に答える