我可以使用Java方法有params但是不需要传递参数吗?

时间:2015-10-03 02:10:17

标签: java methods

所以我有一个程序,你需要调用一个get方法来获取一个对象中的两个项目。我想,如果用户没有通过任何争论,我该怎么办?

x.getItem();

它会工作,只返回两个项目中的一个。

但如果他们想要一个特定的项目......

x.getItem(0); or x.getItem(1);

这在Java中可行吗?我只是不希望0是随机的,1和2是默认的...因为这可能会让以后读起来感到困惑。

1 个答案:

答案 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];
}

鉴于这两个方法的参数不同,您可以使用相同的名称(因为编译器可以根据实际参数区分您正在调用的那个)。

如果你用一些伪的可选参数实现它,你的单个方法会更复杂 - 它会有两种查找返回值的方法加上逻辑来决定是否省略了参数。这两种方法是一个很好的,干净的解决方案。