「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