Java 类泛型

标签 java generics casting

如果我要使用以下代码,我有什么选择?

class Garage<X>{}

class Vehicle {}

class Car extends Vehicle {}

class Bike extends Vehicle {}

class A {
    public static void main(String[] args) {
        Garage<Car> car = new Garage<>();
        Garage<Bike> bike = new Garage<>();
        Garage<Vehicle> vehicle = new Garage<>();
        //what are the options to do this?
        vehicle=car;
        vehicle=bike;
    }
}

我追求的是尝试upcast(?)汽车和自行车到车辆。对于这种泛型类类型,这是否可能?

最佳答案

为了做你想做的事,你需要改变

Garage<Vehicle> vehicle = new Garage<>();

Garage<? extends Vehicle> vehicle = new Garage<>();

关于Java 类泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45896499/

相关文章:

java - 将捕获的图像从 Camera2 Api 传递到另一个 Activity

java - 如何从 Android 项目中删除 Kotlin 支持?

c++ - 为什么我不能 static_cast 继承树下的模板化对象?

java - 使用 Java 在网页中的众多可能选项中选择一个

java - 堆栈溢出是一个糟糕的编程问题吗?

java泛型类和通配符

java - 如何解决通用实例化问题?

c# - 为什么 .NET 方法有时会返回一般类型而不是使用泛型和类型约束?

c++ - 从(指向 const 的指针)到(指向非常量的指针)的强制转换是否无效 C++?

c#绑定(bind)到接口(interface)时向下转型