50. 型変数

50. 型変数

実装の保障

L:\lesson121\test.java

class test {
    public static void main(String args[]) {
        Value<Integer> obj1 = new Value<Integer>(new Integer(10000));
        Value<Double>  obj2 = new Value<Double>( new Double(0.12345));

        obj1.printValue();
        obj2.printValue();
    }
}

class Value<T extends Number> {
    private T value;
    public Value(T value) {
        this.value = value;
    }
    public void printValue() {
        System.out.println("type = "   + value.getClass());
        System.out.println("double = " + value.doubleValue());
        System.out.println("int = "    + value.intValue());
    }
}

実行結果

L:\lesson121>java test
type = class java.lang.Integer
double = 10000.0
int = 10000
type = class java.lang.Double
double = 0.12345
int = 0