gpt4 book ai didi

java - 覆盖其参数扩展 "generified"类的方法

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

我刚刚遇到了一个与 Java 泛型相关的有趣问题。我想使用具体定义 (DerivedPaginator) 而不是“泛化”定义 (Paginator )。为此,我必须更改在 PaginatorTest 中定义的方法。我尝试了不同的组合,但我仍然不知道该怎么做。

你能帮我解决这个难题吗?

interface Base {
}

interface Derived extends Base {
}

interface Paginator<T extends Base> {
}

interface DerivedPaginator extends Paginator<Derived> {
}

interface PaginatorTest<T extends Base> {
// how to define this method so that it would accept DerivedPaginator?
void check(Paginator<T> it);

// nice try, but no cigar
//<Y extends Paginator<T>> void check(Y it);
}

interface DerivedPaginatorTest extends PaginatorTest<Derived> {
// this works fine
//@Override
//void check(Paginator<Derived> it);

// but this doesn't
@Override
void check(DerivedPaginator it);
}

最佳答案

你可以声明

interface PaginatorTest<T extends Base, Y extends Paginator<T>> {
void check(Y it);
}

像这样使用它

interface DerivedPaginatorTest extends PaginatorTest<Derived, DerivedPaginator> {
@Override
void check(DerivedPaginator it);
}

关于java - 覆盖其参数扩展 "generified"类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10284372/

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