gpt4 book ai didi

java - 关于Java方法和实现多个接口(interface)的参数

转载 作者:行者123 更新时间:2023-12-04 12:47:08 28 4
gpt4 key购买 nike

我正在编写一个 Java 应用程序,并有一个问题。如何使用 实现功能一 应该需要一个实现多个接口(interface)的参数的参数?例如:

interface Father
{
}

interface Teacher
{
}

public void foo(FatherAndTeacher person) // How do I do this?
{
// Do something
}

我知道我可以使用两个参数,例如:
public void foo(Father person1, Teacher person2)
{
// Do something
}

但我认为也许有一个实现两个接口(interface)的参数会更好。

最佳答案

两个强制一个参数有 2 个接口(interface),你有 2 个基本选项:

  • 创建一个扩展两者的通用接口(interface)并将其用作您的参数类型:
    interface FatherAndTeacher extends Father, Teacher { 
    }

    问题在于未实现该接口(interface)的对象不匹配。
  • 在需要匹配对象来实现两个接口(interface)的地方使用泛型:
    public  <T extends Father & Teacher> void foo(T person) {
    // Do something
    }

    请注意,这只适用于接口(interface),即您不能这样做 T extends Number & String (2 类)。但是它适用于一个对象边界,在这种情况下,类必须是第一个:T extends ConcretePerson & Father可以,但是 T extends Father & ConcretePerson不是(其中 ConcretePerson 是一个类)。
  • 关于java - 关于Java方法和实现多个接口(interface)的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43851711/

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