JavaA2Z

KAB-studio > プログラミング > JavaA2Z > <T>とは

<T>

日本語 右大なりてぃー左大なり、型パラメーター
英語 left angle bracket T right angle bracket
ふりがな みぎだいなりてぃーひだりだいなり
フリガナ ミギダイナリティーヒダリダイナリ

解説

クラスメソッドに付ける「パラメーター」のこと。
J2SE 5.0で追加された構文。

クラス定義の際に、クラス名の右に「<T>」という「パラメーター」を指定すると、そのクラスジェネリッククラスとなる。
また、メソッド定義の際に、アクセス修飾子の右に「<T>」という「パラメーター」を指定すると、そのメソッドジェネリックメソッドとなる。

つまり、「<T>」を付けることでクラスメソッドジェネリッククラスジェネリックメソッドになるということである。
逆に言えば、「<T>」が付いているクラスジェネリッククラスであり、「<T>」が付いているメソッドジェネリックメソッドということである。
 
「<T>」の「T」は、使用時に特定のへ置き換えることができる特殊なとなる。
別に「T」である必要はなく、識別子と同じルールで任意の単語を使用できる。ただ、慣例的に「T」から始まるアルファベット大文字1文字を使用することが多い。
また、複数のを使用する場合には「<T,U,V>」のようにカンマ区切りで記述する。

参考サイト

  • (参考サイトはありません)

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java

/**
 * ジェネリッククラスの例1。
 */
//               ↓↓これのこと。
class GenericClass<T>
{
}

/**
 * ジェネリックメソッドを持つクラス。
 */
class HasGenericMethod
{
    /**
     * ジェネリックメソッドの例。
     */
    //    ↓↓これのこと。
    public <T> void genericMethod( T t )
    {
    }
}

/**
 * ジェネリッククラスの例2。
 */
//           ちなみに↓↓別に「T」じゃなくても構いません。
class GenericClassABC<ABC>
{
    //    ↓↓ABCが指定した型に置き換わります。
    public ABC data;
}

/**
 * ジェネリッククラスの例3。
 */
//     複数ある場合↓↓↓はT,U,V...となる事が多いです。
class GenericClass3<T,U,V>
{
    public T data1;
    public U data2;
    public V data3;
}

public class Sample
{
    public static void main( String[] args )
    {
        // ジェネリッククラスの例。
        //           ↓↓↓こうすればTがStringになります。
        GenericClass<String> generic1 = new GenericClass<String>();

        // ジェネリックメソッドの例。
        HasGenericMethod genericMethod = new HasGenericMethod();
        String string = "あいうえお";
        //            こうすれば↓↓↓TがStringになります。
        genericMethod.genericMethod( string );
        //       ↓↓↓こうすればTがObjectになります。
        genericMethod.<Object>genericMethod( string );

        // ジェネリッククラスの例2。
        //              ↓↓↓こうすればABCがStringになります。
        GenericClassABC<String> generic2 = new GenericClassABC<String>();

        // ジェネリッククラスの例3。
        // TにString、UにInteger、VにBooleanを当てはめます。
        GenericClass3<String, Integer, Boolean> generic3
                = new GenericClass3<String, Integer, Boolean>();
        generic3.data1 = "あいうえお";
        generic3.data2 = new Integer( 100 );
        generic3.data3 = new Boolean( true );
    }
}
// Sample.java

/**
 * ジェネリッククラスの例1。
 */
//               ↓↓これのこと。
class GenericClass<T>
{
}

/**
 * ジェネリックメソッドを持つクラス。
 */
class HasGenericMethod
{
    /**
     * ジェネリックメソッドの例。
     */
    //    ↓↓これのこと。
    public <T> void genericMethod( T t )
    {
    }
}

/**
 * ジェネリッククラスの例2。
 */
//           ちなみに↓↓別に「T」じゃなくても構いません。
class GenericClassABC<ABC>
{
    //    ↓↓ABCが指定した型に置き換わります。
    public ABC data;
}

/**
 * ジェネリッククラスの例3。
 */
//     複数ある場合↓↓↓はT,U,V...となる事が多いです。
class GenericClass3<T,U,V>
{
    public T data1;
    public U data2;
    public V data3;
}

public class Sample
{
    public static void main( String[] args )
    {
        // ジェネリッククラスの例。
        //           ↓↓↓こうすればTがStringになります。
        GenericClass<String> generic1 = new GenericClass<String>();

        // ジェネリックメソッドの例。
        HasGenericMethod genericMethod = new HasGenericMethod();
        String string = "あいうえお";
        //            こうすれば↓↓↓TがStringになります。
        genericMethod.genericMethod( string );
        //       ↓↓↓こうすればTがObjectになります。
        genericMethod.<Object>genericMethod( string );

        // ジェネリッククラスの例2。
        //              ↓↓↓こうすればABCがStringになります。
        GenericClassABC<String> generic2 = new GenericClassABC<String>();

        // ジェネリッククラスの例3。
        // TにString、UにInteger、VにBooleanを当てはめます。
        GenericClass3<String, Integer, Boolean> generic3
                = new GenericClass3<String, Integer, Boolean>();
        generic3.data1 = "あいうえお";
        generic3.data2 = new Integer( 100 );
        generic3.data3 = new Boolean( true );
    }
}

この単語を含むページ

「みだし」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2010/02/16
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。