首页 > 解决方案 > java泛型;强制返回对象的参数对象类型

问题描述

public class Main<T> {
    public static void main(String[] args) {
        Wrapper<Double> wrapper = new Wrapper<>(0.0d);
        method(wrapper);
    }

    public static Wrapper<?> method(Wrapper<?> wrapper) {
        Wrapper<?> wrapper2 = new Wrapper<>(1);
        return wrapper2;
    }
}

public class Wrapper<T extends Number> {
    private final T member;

    public Wrapper(T member) {
        this.member = member;
    }
}

Wrapper wrapper有类型Double。然后将它传递给method(),它首先wrapper2使用 TypeInteger并返回它。

有没有办法强制wrapper2具有与参数相同的类型Wrapper wrapper,即wrapper2必须具有类型Double

标签: javagenericstypeswildcard

解决方案


推荐阅读