4

PECS の意味を知っています。

プロデューサーエクステンド、コンシューマースーパー。

問題は、それが消費者か生産者かをどうやって知ることができるでしょうか?

また、このコードは「PECS」に従っていますか

public class Tree<T> {

    //List of branches for this tree
    private List<Tree<? super T>> branch = new ArrayList<Tree<? super T>>();
    public Tree(T t){ this.t = t; }
    public void addBranch(Tree< ? super T> src){ branch.add(src); }
    public Tree<? extends T> getBranch(int branchNum){
        return (Tree<? extends T>) branch.get(branchNum);
    }
    private T t;
}
4

3 に答える 3

3
  • プロデューサーは、メソッドの戻り値の型を参照します。
  • コンシューマーは、メソッドのパラメーターの型を指します。
于 2012-08-30T13:16:03.683 に答える
3

使用できるニーモニックは、returnsforextendsおよびacceptsforを想像することですsuper

つまり、その returnTree<? extends T>Tree<? returns T>メソッドを呼び出すことはできますが、引数の型として受け入れるメソッドを呼び出すことはできません。TreeTT

于 2012-08-30T13:21:49.737 に答える