[英]Incompatible type compile error
找到不兼容的类型java.util.vector需要HighRights。 抱歉,我是Java的新手,我只是不明白该怎么做
注意:在本练习中,我们将不使用泛型
在以下程序中,缺少CountHighs
方法中的代码。 编写此方法的代码,该方法将向量m作为参数,并返回向量中作为HighRights
实例的HighRights
该方法还应该:-检查从向量中提取的元素确实是类HighRights
或LowRights
实例。 如果元素不是此类的实例,则该方法应返回-1。
如果向量为null,则处理NullPointerException
。 捕获发生的异常时,使用以下代码:
System.out.println("Error"); System.exit(0); return 0;
(暗示:
m.size()
获得向量m中的元素数 instanceof
检查对象是否为类的实例) 例如,
HighRights
对象和一个LowRights
对象,则CountHighs(m)
将返回2 HighRights
对象和一个String
对象,则CountHighs(m)
将返回-1 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;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.