作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将测试用例添加到测试套件中,如下所示:
for(String methodName : getPublicDeclaredMethods(TestA.class))
{
this.addTest((new TestA(methodName)));
}
for(String methodName : getPublicDeclaredMethods(TestB.class))
{
this.addTest((new TestB(methodName)));
}
this.addTest((new TestA("TEST_METHOD_1")));
this.addTest((new TestA("TEST_METHOD_2")));
this.addTest((new TestB("TEST_METHOD_1")));
this.addTest((new TestB("TEST_METHOD_3"))); // woops I forgot TEST_METHOD_2
void <T> addTestCasesFromClass()
{
for(String methodName : getPublicDeclaredMethods(T.class))
{
this.addTest((new T(methodName)));
}
}
最佳答案
泛型在这里没用,因为你不能做类似 new T
的事情。 .但是你可以通过更多的反射(reflection)来做到这一点。鉴于您传递给此方法的所有类都具有一个仅接受一个 String 参数的构造函数。
void addTestCasesFromClass(Class<?> clz)
{
for(String methodName : getPublicDeclaredMethods(clz))
{
this.addTest(clz.getConstructor(String.class).newInstance(methodName));
}
}
addTestCasesFromClass(TestA.class);
addTestCasesFromClass(TestB.class);
addTest
方法只接受某个基类的对象(假设它是
TestBase
),然后更改
clz
的泛型参数至
Class<? extends TestBase> clz
.
关于java - 可以构造泛型类型的泛型方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15112576/
我是一名优秀的程序员,十分优秀!