所以我有一个程序,你需要调用一个get方法来获取一个对象中的两个项目。我想,如果用户没有通过任何争论,我该怎么办?
x.getItem();
它会工作,只返回两个项目中的一个。
但如果他们想要一个特定的项目......
x.getItem(0); or x.getItem(1);
这在Java中可行吗?我只是不希望0是随机的,1和2是默认的...因为这可能会让以后读起来感到困惑。
答案 0 :(得分:1)
听起来你真正想要的是两种方法:
private A[] a = new A[2];
public A getItem() {
return a[new Random().nextInt(1)];
}
public A getItem(int index) {
return a[index];
}
鉴于这两个方法的参数不同,您可以使用相同的名称(因为编译器可以根据实际参数区分您正在调用的那个)。
如果你用一些伪的可选参数实现它,你的单个方法会更复杂 - 它会有两种查找返回值的方法加上逻辑来决定是否省略了参数。这两种方法是一个很好的,干净的解决方案。