gpt4 book ai didi

Java 泛型类定义为返回类型还是在类级别?

转载 作者:行者123 更新时间:2023-11-29 06:36:37 25 4
gpt4 key购买 nike

在方法返回泛型的情况下,与仅在类级别声明相比,将泛型类声明为返回类型有什么好处吗?

    //case #1
public interface Reaper<T> {
<S extends Foo> S save(S entity);
<S extends Foo> S saveWithOptions(S entity, Object[] params);
}

.

    //case #2
public interface Reaper<T, S extends Foo> {
S save(S entity);
S saveWithOptions(S entity, Object[] params);
}

在情况 #2 中,我不必重复 <S extends Foo>对于每个返回 S 的方法因为它是在接口(interface)中声明的,尽管在使用时我必须定义为 Reaper<MyType, MyFooSubType> .除此之外,还有什么主要区别和/或好处吗?

最佳答案

如果在类级别声明,则不能在同一个类实例上调用具有不同类型参数的函数。
换句话说,类型成为实例的属性,而不是每个函数调用的属性。

关于Java 泛型类定义为返回类型还是在类级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19553115/

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