首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JUnit ClassCastException

JUnit ClassCastException
EN

Stack Overflow用户
提问于 2014-09-10 07:09:33
回答 1查看 851关注 0票数 0

我正在测试这一行代码,我有一个ClassCastException

代码语言:javascript
复制
final A a = (A) dao.fetchId(id);

A扩展了dao.fetchId的返回。

下面是测试代码:

代码语言:javascript
复制
 @Test

 public void test() throws Exception {
    final A a = new A();
    final C c = new C();
    c.setId(2L);
    Mockito.when(dao.fetchId(Matchers.anyLong())).thenReturn(a);
    target.someMethod(c, 2L, 2L, true, true);
}
EN

回答 1

Stack Overflow用户

发布于 2014-09-10 07:18:15

你们的关系似乎是颠倒过来的。您说A扩展了C,但您正在尝试将C转换为A

人们可以把继承看作是一种关系。当您说一个类扩展了另一个类时,您实际上是在说类“是”您继承的类。

例如,String Object,但Object不一定是String

下面是代码中的内容。你可以从右到左阅读is-一种关系。

代码语言:javascript
复制
Object string = "I'm a string!";
String object = (String) new Object(); // required to satisfy compilation

这是很难预测的背景,因为我们不知道为什么你有这个继承链开始。但是,在这种情况下,您应该返回真正需要的类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25759306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档