2017-11-01 11 views
1

私はこのようなクラスを持っています。タイプパラメータの重複はどのように処理されますか?

// just followed the T, U, V... 
public class Some<T...., U....> { 
} 

そして、このようなインスタンスメソッドを追加する必要があります。方法の

// not a static method 
    // just followed from BiFunction<T, U, R>.class 
    protected <U, R> R apply(final BiFunction<T, U, R> function, 
          final U u) { 

    } 

TクラスのTと同じです。 この方法のUは、クラスのUと必ずしも同じではありません。

これらのうちの1つを変更してください。U?言い換えれば

は同じものを2 Uていますか?

+1

別のパラメータ名を使用する必要がありますか?理想的には、はい。クラスパラメータを隠すと、コンパイラが警告すると思います。 – shmosel

答えて

4

スコープルールに従わないと、Uは同じではありません。 applyメソッドのUは、クラスSomeのメソッドをシャドウします。混乱を避けるために、私はそれらの名前の一つをUに改名します。

関連する問題