gpt4 book ai didi

java - 抽象类和泛型

转载 作者:行者123 更新时间:2023-12-02 06:16:36 27 4
gpt4 key购买 nike

假设我有以下类(class):

public abstract class AbstractClass {
...
}

public class ConcreteClass extends AbstractClass {
...
}

build 者:

public class Builder{
static public ConcreteClass build(){
...
}
}

以及其他类中的通用函数:

public <T extends AbstractClass> T myFunction(){
T a = Builder.build();
return a;
}

据我所知,编译器应该有足够的信息来允许这样的分配,但是,它会抛出一个错误:

Type mismatch: cannot convert from ConcreteClass to T

为什么会这样?这种分配的潜在危险是什么?

最佳答案

有人可以这样写:

public class OtherConcreteClass extends AbstractClass {
...
}

...

SomeOtherClass soc = SomeOtherClass.<OtherConcreteClass>myFunction();

在对 myFunction 的调用中,T 是 OtherConcreteClass,并且您无法将 ConcreteClass 转换为 OtherConcreteClass。

关于java - 抽象类和泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21392717/

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