「Java」ジェネリクスクラスにワイルドカードを使用する
環境
JDK1.8
Eclipse 2019
書式
1.ジェネリクスクラスの定義
class クラス名<T> {処理コード}
2.ワイルドカード(?)を使用
クラス名<?> cftA = new クラス名<>(String型引数);
クラス名<?> cftA = new クラス名<>(Integer型引数);
ワイルドカード(?)は、コンパイル時に型が不明です。
引数の値は文字列型(数値型)を指定します。
使用例
package com.arkgame.Test;
//ジェネリクスクラスの定義
class Test<T> {
T tA;
// コンストラクタ
public Test(T tt) {
this.tA = tt;
}
// メソッドgetFunc
public T getFunc() {
return tA;
}
}
public class WildCardDemo {
// String型定数
public static final String TARGET = "study skill";
// Integer型定数
public static final Integer AGE = 25;
public static void main(String[] args) {
// ワイルドカード(?) String型を指定
Test<?> cftA = new Test<>(TARGET);
System.out.println(cftA.getFunc());
// ワイルドカード(?) Integer型を指定
Test<?> cftB = new Test<>(AGE);
System.out.println(cftB.getFunc());
}
}
実行結果
study skill 25