我的代码错误的链接
找到不兼容的类型java.util.vector需要HighRights。
抱歉,我是Java的新手,我只是不明白该怎么做
注意:在本练习中,我们将不使用泛型
在下面的程序中,方法CountHighs
中的代码丢失。
编写此方法的代码,该方法将向量m和
返回向量中作为HighRights
实例的对象数
该方法还应该:
-检查从向量中提取的元素确实是实例
类HighRights
或LowRights
中的一个。如果元素不是此类的实例,
然后该方法应返回-1。
如果向量为null,则处理NullPointerException
。使用以下
捕获发生的异常时的代码:
System.out.println("Error");
System.exit(0);
return 0;
(暗示:
使用
m.size()
获取向量m中的元素数使用关键字
instanceof
检查对象是否是类的实例)例如,
如果向量m仅包含两个
HighRights
对象和一个LowRights
对象,则CountHighs(m)
将返回2如果向量m仅包含两个
HighRights
对象和一个String
对象,则CountHighs(m)
将返回-1如果向量m仅包含五个
LowRights
对象而没有HighRights
对象,则CountHighs(m)
将返回0任何帮助/提示将不胜感激。非常感谢你。
最佳答案
您应该发布完整的代码(而不是图像)和错误堆栈跟踪,但是我想我知道问题所在。您有一个public static int CountHighs(Vector m)
方法,并且在其中检查条件m instanceof HighRights/LowRights
-从来都不是真的,Vector是Vector,而不是HighRights。您需要检查矢量中存储的对象是HighRights还是LowRights。为此,您应该使用循环:
for(Object obj : m){ //it will iterate over the vector `m`, with each iteration `obj` will be the next element
if(obj instanceof HighRights){
++countHighRights;
}
else if(obj instanceof LowRights){
//do nothing - you should only count HighRights
}
else{ //obj is neither HighRight nor LowRight
return -1;
}
}
关于java - 不兼容的类型编译错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35969266/