0

これは私がEgitのために見つけたコードです

の使用法は初めてですPlotCommitList<L extends PlotLane>

  1. それに使用される用語は何ですか?
  2. それはコンパイラにとって何を意味するか、または意味しますか?

public class PlotCommitList<L extends PlotLane> extends RevCommitList<PlotCommit<L>> {

4

1 に答える 1

3

<>演算子は、汎用テンプレートのクラスを指定するために使用されます。

一般的な「リスト」をイメージします。1.4までのJavaでは、「リスト」にはジェネリックObjectsのみを含めることができました。リストに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に非常に優れたチュートリアルがあります。

于 2012-11-05T11:09:07.873 に答える