我正在用另一种语言(R)调用Java方法。我的R函数中的一些参数是可选的。在Java方法中处理未初始化参数的最佳方法是什么? (理想情况下不使用异常处理......)
编辑:根据第一个回复进行跟进:
"2. Initialize with predefinied defaults and continue"
如何检查某些内容是否未初始化?
这是我希望使用的方法的一些伪代码:
public static void test(int i) {
if(!is.initialized(i) {
i = 0;
}
// Do stuff with i
}
编辑2:重载似乎很多工作。我宁愿有一个方法,并使用默认值处理每个案例。也就是说,我不是专家,我很想知道最佳实践是什么。
答案 0 :(得分:2)
由于Java不支持默认参数,我建议使用覆盖可选参数的方法的重载版本,尽管取决于你有多少可选参数,这可能会变得混乱。
编辑: 正如评论中所建议的那样,您可以使用varargs收集可变数量的参数,然后包含用于处理方法内的强制参数和可选参数的不同组合的逻辑。
这只需要一种方法。见Varargs documentation
使用varargs,您可以使用与伪代码类似的逻辑。
答案 1 :(得分:2)
重载不是很多工作。通常你会做类似的事情:
public static int test(int i, int j) {
// detailed processing here
}
public static int test(int i) {
return test(i, 0);
}
public static int test() {
return test(0, 0);
}
通过这种方式,您只需要实现一次处理逻辑,然后使用简短的单行方法填充缺少的内容,并将控制权交给执行实际工作的方法。
答案 2 :(得分:1)
取决于
无论哪种方式,您都需要清楚地记录下来。