java - 带参数的接口(interface)

标签 java interface

我在 3 个不同的类中使用相同的接口(interface),

但是,这3个类需要有不同的参数来处理,并且都必须命名

例如我有这个界面

public interface ITest<T>{

 public T test1();
 public T test2();
 public T test3();
}

我有 3 节课

A、B、C 实现具有不同 T 类型参数的所有 ITest

但是,我需要一个类来具有此方法:

test1(String a, String b);

B类有这个方法:

test1();

C类有这个方法:

test1(boolean b);

使用相同的接口(interface)可以吗?或者我需要为这些类提供 3 个不同的接口(interface)吗?

注意:我可以这样编写我的界面:(假设括号中的所有类型都相同)

public interface ITest<T,S>{
 public T test1(S...params);
 public T test2();
 public T test3();

}

但是,这意味着1:所有参数必须相同,2在不需要任何参数的方法中,仍然有参数

最佳答案

示例中的 3 个方法 test1 是完全不同的方法,因为它们不共享同一组参数。

相同的接口(interface)意味着由几个类(示例中的 A、B、C)共享的一组方法。所以在这里你的 3 个类中没有相同的接口(interface)(因为它们的 test1 方法不同)。您有 3 个不同的界面。

好的,如果你的 3 个类共享相同的 test2 和 test3 方法(但不是 test1 方法), 然后只需从界面中取出 test1 方法即可。

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

相关文章:

php - 使用 count() 计算实现 ArrayAccess 的对象的元素?

c# - 如何从方法返回实现接口(interface)的对象

java - 转换为 JSON 后保留 XMLGregorianCalendar 日期格式 - Jackson Lib

java - 访问内部类方法会导致 nullpointerException

java - 从 Google Cloud Storage Java API 下载比 gsutil 慢

c# - switch 语句是否适用于工厂方法? C#

java - 如何维护 Java 中的 RESTful API 版本?

java - 以 Java 8 风格重写 "matching algorithm"

arrays - Go Lang - 接口(interface)和数组

c# - 类中没有泛型引用的泛型类型方法