「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