gpt4 book ai didi

java - 参数化 Java 类以获取任意多个接口(interface)

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

我在 Java 中有一个接口(interface),其中包含许多特定于特定类型测试的参数。然后我有一个实用程序类,其中包含可在许多不同项目中重复使用的函数,我唯一想更改的是实用程序函数中使用的参数。

我尝试的解决方案是使测试实用程序类根据我希望它实现的接口(interface)类型进行参数化。我希望能够向类发送一个或多个接口(interface)。如下图所示:

public class TestsetA extends TestUtilityFunctions<ParametersA,...> {}

public class TestUtilityFunctions<T...> implements T... {}

但是这给了我错误:Can not refer to type parameter T as supertype.

我如何使用 Java 泛型实现它?

更新:我试图解决的用例如下:

public abstract class TestUtilityFunctions<T implements CommonProperties> {

protected void initRestAssured() {
RestAssured.port = T.PORT;
RestAssured.basePath = T.BASE_URL;
}}

public class MyATests extends TestUtilityFunctions<ParametersForA> {

}

public class MyBTests extends TestUtilityFunctions<ParametersForB> {

}

最佳答案

我想你想传入一个实例

public abstract class TestUtilityFunctions<T implements CommonProperties> {
private final T props;
protected TestUtilityFunctions(T props) {
this.props = props;
}
protected void initRestAssured() {
// are PORT and BASE_URL static?
// if no, they shouldn't be capitals (use getPort() and getBaseUrl())
// if yes, this is bad design
RestAssured.port = props.PORT;
RestAssured.basePath = props.BASE_URL;
}
}

关于java - 参数化 Java 类以获取任意多个接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33435554/

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