java - 如何实现忽略某些输入值的方法?(爪哇)
问题描述
我是Java的初学者。我的第一个任务是创建一个简单的几何对象包——点、线、圆、矩形等。一切正常,但我不确定如何完成其他任务:
在此现有文件中创建一个方法,该方法采用对象数组并返回其面积的总和,但在它们没有可用此参数的情况下(如 classes
Line
和Point
),该方法将忽略这些对象。
我的猜测是应该使用一个接口(比如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
}
}
但是这个解决方案并没有解决方法应该忽略其他没有实现这个接口的对象的问题。请你帮助我好吗?
解决方案
你可以if (x instanceof ObjectWithArea)
用来测试你是否应该忽略一个对象,然后((ObjectWithArea)x).getArea()
对那些你确实需要处理的对象进行强制转换。
避免必须这样做的替代方法(instanceof
有点争议——但不要与你的老师争吵),将getArea
方法应用于所有对象并返回0
那些没有区域的对象。
推荐阅读
- c# - 如何检索
进行 lgrouping 后从列表中 - python - 重新调整训练集
- r - 如何用 ggplot2 (R) 绘制单个置信区间?
- c - 使用 printf 时出现意外的双值输出
- java - Kotlin 中的 Sealed 类和继承原理有什么区别?
- python - 如何使用 Python Pandas 从 1 行中的特定列中获取值?
- r - “shinyFeedback”不适用于“dateRangeInput”组件
- php - 发布到公司页面链接时验证失败 [/author] | php
- java - 为什么当我的 Raspberry pi 上有 7.5G 未使用时,我的 java 告诉我我没有 3G ram?
- python - 创建具有命名颜色值的 pcolormesh