Java泛型:如何包装/扩展Android Activity测试用例?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java泛型:如何包装/扩展Android Activity测试用例?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1525字,纯文字阅读大概需要3分钟。
内容图文
![Java泛型:如何包装/扩展Android Activity测试用例?](/upload/InfoBanner/zyjiaocheng/769/57b79d0be1b84d6da8f762c4ef4689d3.jpg)
我试图扩展ActivityInstrumentationTestCase2如下:
public abstract class FooActivityTestCase<T extends Activity>
extends ActivityInstrumentationTestCase2<Activity> {
public FooActivityTestCase(String pckg, Class<Activity> activityClass)
{
super(pckg, activityClass);
}
public void foo(){ ... }
}
我尝试像这样扩展FooActivityTestCase:
public class SpecificFooTestCase
extends FooActivityTestCase<MyActivity> {
public SpecificFooTestCase() {
super("foo.bar", MyActivity.class); // error on this line
}
}
Eclipse在构造函数中给出了以下错误:
The constructor FooActivityTestCase<MyActivity>(String, Class<MyActivity>) is undefined
我很确定问题在于我如何使用泛型.当SpecificFooTestCase扩展ActivityInstrumentationTestCase2时,我没有收到任何错误.谁能指出我做错了什么?
忽必烈汗和迈克尔迈尔斯的建议一起工作.在我改变FooActivityTestCase以扩展ActivityInstrumentationTestCase2< T>之后和类<活动>类< T>在构造函数中,类编译时没有错误.这是结果类(SpecificFooTestCase没有改变):
public abstract class FooActivityTestCase<T extends Activity>
extends ActivityInstrumentationTestCase2<T> {
public FooActivityTestCase(String pckg, Class<T> activityClass)
{
super(pckg, activityClass);
}
public void foo(){ ... }
}
解决方法:
你需要像这样定义超级构造函数:
//Only accepts classes that are Activity or extend Activity
public FooActivityTestCase(String pckg, Class<? extends Activity> activityClass)
{
super(pckg, activityClass);
}
问题是,对于泛型参数,泛型类型必须始终是完全相同的泛型类型,如果您希望能够在继承树中传递需要使用通配符的内容吗?并扩展,这样你就可以传递任何扩展该类的泛型类型.
内容总结
以上是互联网集市为您收集整理的Java泛型:如何包装/扩展Android Activity测试用例?全部内容,希望文章能够帮你解决Java泛型:如何包装/扩展Android Activity测试用例?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。