您好我在控制台中收到错误:
no suitable method found for intersects(Object)
if((EnemyBarrels.get(i).getHitBox()).intersects(buildG.getStepD().get(i))){
^
method RectangularShape.intersects(Rectangle2D) is not applicable
(argument mismatch; Object cannot be converted to Rectangle2D)
method Rectangle.intersects(Rectangle) is not applicable
(argument mismatch; Object cannot be converted to Rectangle)
我不明白发生了什么,因为getStepD返回一个ArrayList。
以下是代码:
EnemyBarrels包含多个对象。
for(int i = 0; i < EnemyBarrels.size(); i++){
EnemyBarrels.get(i).move();
if((EnemyBarrels.get(i).getHitBox()).intersects(buildG.getStepD().get(i))){
}
这是getHitBox():
public Rectangle getHitBox(){
return hitbox;}
这是hitbox:
Rectangle hitbox = new Rectangle(BarrX,BarrY,25,21);
BarrX和BarrY在其中。
这是getStepD():
public ArrayList getStepD(){
return stepD;
}
这是stepD:
ArrayList<Rectangle> stepD = new ArrayList<Rectangle>();
其中包含矩形。
任何帮助将不胜感激! 感谢
答案 0 :(得分:4)
您在getStepD方法中返回一个ArrayList,因为您没有指定ArrayList在方法中包含哪些类型的对象。 Java假定您正在返回对象的ArrayList。您可以将方法更改为此
public ArrayList<Rectangle> getStepD(){
return stepD;
}