「Java」上限付き境界ワイルドカードextendsのサンプル

2021年9月2日

書式
クラス名<? extends Number>変数名

使用例

package com.arkgame.demo;

//ジェネリック型クラスの定義
class Cft<T> {
      private T fm;

      // コンストラクタ
      public Cft(T arg) {
            this.fm = arg;
      }

      // T型fmの値を返す
      public T getFunc() {
            return fm;
      }
}

public class GenericDemo {

      public static void main(String[] args) {

            // Integer型のジェネリックス
            Cft<Integer> intObj = new Cft<Integer>(3456);
            Integer itA = intObj.getFunc();
            System.out.println("Integer型のジェネリックス: " + itA);

            // ワイルドカード extends
            Cft<? extends Number> itB = intObj;
            Number td = itB.getFunc();
            System.out.println("Number型のジェネリックス: " + td);
      }

}

実行結果
Integer型のジェネリックス: 3456
Number型のジェネリックス: 3456

Java

Posted by arkgame