gpt4 book ai didi

java - 抽象泛型类的不同实现

转载 作者:行者123 更新时间:2023-11-30 04:58:11 24 4
gpt4 key购买 nike

我有以下类(class):

abstract class MyAbstract<T>
{
T val_;
MyAbstract(T val)
{
val_ = val;
}
T getVal()
{
return val_;
}
}

例如,我希望我的抽象类对于 T = String 有不同的主体(请耐心等待):

abstract class MyAbstract<T extends String>
{
T val_;
T upperVal_;
MyAbstract(T val)
{
val_ = val;
upperVal_ = val.toUpperCase();
}
T getVal()
{
return upperVal_;
}
}

我想要实现的结果是,如果我扩展 MyAbstract,将使用第二个版本,否则使用第一个版本。这可能吗?如何实现?谢谢!

更新:我希望能够扩展相同的抽象类并执行以下操作:

Type1 extends MyAbstract<Integer>...

Type2 extends MyAbstract<String>...

(请注意,我对两种类型都使用 MyAbstract)

最佳答案

使第二个实现扩展第一个实现。

abstract class MyAbstract2<T extends String> extends MyAbstract<T>
{
T upperVal_;

MyAbstract(T val)
{
super(val);
upperVal_ = val.toUpperCase();
}

@Override
T getVal()
{
return upperVal_;
}
}

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

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