これは私がEgitのために見つけたコードです
の使用法は初めてですPlotCommitList<L extends PlotLane>
。
- それに使用される用語は何ですか?
- それはコンパイラにとって何を意味するか、または意味しますか?
public class PlotCommitList<L extends PlotLane> extends RevCommitList<PlotCommit<L>> {
<>演算子は、汎用テンプレートのクラスを指定するために使用されます。
一般的な「リスト」をイメージします。1.4までのJavaでは、「リスト」にはジェネリックObject
sのみを含めることができました。リストにsだけを残したい場合はString
、多くのキャストメソッドとヘルパーメソッドを使用する必要があり、コードがほとんど読めなくなりました。
Java 5では、問題を解決するジェネリックスが導入されました。テンプレートクラス「listof」を作成し、パラメータまたは戻り値として使用されるクラスをパラメータ化できます。
<L extends ...>
さらに、とを使用して<L super ...>
、テンプレートが機能するクラスの範囲を制限したり、パラメーターとして複数のクラスを使用<class1,class2>
したり、自由に組み合わせたりすることができ<class1,class2<class3>>
ます。
http://www.javacodegeeks.com/2011/04/java-generics-quick-tutorial.htmlに非常に優れたチュートリアルがあります。