如何实现忽略某些输入值的方法? (Java)

时间:2018-10-06 13:04:30

标签: java methods interface

我是Java的初学者。我的第一个任务是创建一个简单的几何对象包-点,线,圆,矩形等。一切正常,但我不确定如何完成其​​他任务:

  

在此现有文件中创建一个方法,该方法采用对象数组并   返回其面积的总和,但在不返回的情况下   有了此参数(例如类LinePoint),   方法忽略这些对象。

我的猜测是应该使用一个接口(例如GeometricObject或也许ObjectWithArea),但是我不知道如何使用它。我在想这样的事情:

public interface ObjectWithArea {

   double sumOfAreas(Array) {

   //this is the declaration of the method
  }

}

这是将接口合并到现有代码中的方法:

class Rectangle implements ObjectWithArea {

   //here are the original parameters and methods of this class

   double sumOfAreas(Array) { 

      //here is the body of the previously declared method

   }
}

但是此解决方案不能解决方法应忽略其他未实现此接口的对象的问题。你能帮我吗?

1 个答案:

答案 0 :(得分:3)

您可以使用if (x instanceof ObjectWithArea)测试是否应该忽略对象,然后使用强制转换((ObjectWithArea)x).getArea()对需要处理的对象进行操作。

一种避免执行此操作的替代方法(instanceof有点争议-但不要与您的老师吵架),可以使用getArea方法所有对象,对于没有区域的对象返回0