「Java」ジェネリクス(Generics)クラスにextendsを使用する

環境
JDK1.8
Eclipse 2019

書式
class クラス名<T extends Number> {処理コード
extendsを使用して型はNumberクラスまたはNumberのサブクラスという制限をつけています。

使用例

package com.arkgame.Test;

//NumberクラスとNumberのサブクラスを継承
class TestA<T extends Number> {
      T tt;

      // コンストラクタ
      public TestA(T tt) {
            this.tt = tt;
      }

      // setFuncメソッド
      public void setFunc(T tt) {
            this.tt = tt;
      }

      // getFuncメソッド
      public T getFunc() {
            return tt;
      }
}

public class ExtendsDemo {

      public static void main(String[] args) {
            //ジェネリクスクラスのインスタンス生成
            TestA<Integer> ta = new TestA<>(56);
            System.out.println("コンストラクタで変数の値: " + ta.getFunc());

            ta.setFunc(99);
            System.out.println("メソッドで変数の値: " + ta.getFunc());

      }

}

実行結果
コンストラクタで変数の値: 56
メソッドで変数の値: 99

Java

Posted by arkgame