gpt4 book ai didi

java - 实现参数化接口(interface)

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

给定这个界面:

import com.google.common.base.Optional;

public interface Foo<S extends Bar> {
Optional<S> get();
}

然后我用 Foo 实现了接口(interface):

public class Baz implements Foo {
public Optional<Bippie> get { ... }; // Bippie extends Bar
{

Baz类需要带参数吗?为什么或为什么不?

最佳答案

从技术上来说,保留 Baz 不变,实现原始 Foo 接口(interface)是合法的。 Java 会将所有泛型视为不存在,并且该代码将编译。

然而,使用原始类型通常是一个坏主意,而且正确实现通用接口(interface)很容易,所以就这样做吧。您不必在类 Baz 上提供泛型类型参数:

public class Baz implements Foo<Bippie> {
public Optional<Bippie> get() {

但如果你愿意,你也可以:

public class Baz<S extends Bar> implements Foo<S> {
public Optional<S> get() {

或者您可以使用 Bippie 进一步缩小范围:

public class Baz<S extends Bippie> implements Foo<S> {
public Optional<S> get() {

关于java - 实现参数化接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24023422/

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