java类型转换错误

2024-12-27 08:24:40
推荐回答(5个)
回答1:

通常使用强制类型转换将父类型转换成子类型时,是不会有编译错误的,只会有运行时抛出ClassCast的异常,如果编译提示错误,那肯定是因为你转换的时候类型就匹配,被转换的对象和目标类型不是子父类/接口实现类的关系,自然编译不通过

回答2:

iterator 是游标遍历的,这个游标同一时间只指向一个对象 也就是你for循环.next就是游标移动一个位置指向一个对象 你删除的时候也是删的这个对象。Ok?

回答3:

如果只是一个对象,那么就会默认移除这个,或者你可以在括号里面加this,应该也可以的

回答4:

1、强制类型转换只发生在继承的情况下把子类实例转成父类实例,String类显然没有继承你的Name类。。。
2、 Object name = i.next();
//不是Name类型,或者firstName长度小于3的就删

if(!(name instanceof Name) || ((Name)name).getFirstName().length()<3)
i.remove();

回答5:

首先HashSet里面存放的都是String类型,而Name是你自定义的类型,因此String类型无法被转换为Name类型会报错.
迭代器是类似于指针,直接指向某个对象,因此无需传入参数就知道指向的是谁