gpt4 book ai didi

java,从 A 转换为 A

转载 作者:行者123 更新时间:2023-12-01 11:47:02 26 4
gpt4 key购买 nike

我想知道下面的代码是如何工作的。我认为它将 A 类型转换为 A ,这不应该起作用,例如,您不能将 A 转换为 A 。但调用 A.returnB() 只会导致警告:未经检查或不安全的操作。

class A<T>{
public static <S extends Number> A<S> returnB(){
return (A<S>) B.INSTANCE;
}
}

class B extends A<Number>{
static final B INSTANCE = new B();
}

最佳答案

它的缺点是 Java 通过类型删除来实现泛型,并允许您回退到原始类型(前泛型)以实现向后兼容性,因此允许不安全的强制转换。它们带有警告,并可能在运行时导致 ClassCastExceptions,但它们在某些情况下也可以合法使用,因此是允许的。

关于java,从 A<T> 转换为 A<S extends T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29069082/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com