2017-05-21 9 views
-1

私はjavaを使い慣れていないので、コードを読むときに以下の構文で出会いました。角括弧付きのJavaクラス宣言

public class APIRequest<T extends APINode> { 
} 

この構文は何を意味しますか?通常のクラス宣言構文とは異なります。

+3

Google Java generics。 – Eran

+0

このドキュメントを読むhttp://stackoverflow.com/documentation/java/92/generics#t=201705211135560450356 –

+2

https://docs.oracle.com/javase/tutorial/java/generics/types.html – poisonedYouth

答えて

0

<T extends APINode>は、がAPINodeのサブクラスでなければならないことを意味する。ジェネリック医薬品について

public class Chest<T> { 

    private T t; 

    public Chest(T t) { 
     this.t = t; 
    } 

    T getContent() { 
     return t; 
    } 

} 

<T>あなたはTタイプのオブジェクトが含まれていますChestのパラメータ化された型を作成することができることをここを意味します。ジェネリック型がなければ、あなたが保存したい種類ごとに新しいクラスを作成する必要があり、その代わりに:

Integer a = 10; 
Chest<Integer> chestWithInteger = new Chest<>(a); 

Double b = 10.0d; 
Chest<Double> chestWithDouble = new Chest<>(b); 

次の2つのクラスDoubleChestIntegerChestを作成する必要があります。

+0

OPの継ぎ目をブラケットに問題がありますので、詳しく説明してください。 –

+0

この構文を使用しているリンクは次のとおりです。 https://github.com/facebook/facebook-java-ads-sdk/blob/master/src/main/java/com/facebook/ads/sdk/APIRequest.java – Raj

+0

ありがとうByeBeye明確にするために。 – Raj

0

これはgenericsです。ここをクリックしてくださいGenerics