在Java中处理未初始化的参数?
我正在从另一种语言()调用一个Java方法。有些参数在my R函数中是可选的。在Java方法中处理未初始化参数的最佳方法是什么?(理想情况下不使用异常处理…) 编辑:基于第一个响应的后续行动:在Java中处理未初始化的参数?,java,parameters,initialization,Java,Parameters,Initialization,我正在从另一种语言()调用一个Java方法。有些参数在my R函数中是可选的。在Java方法中处理未初始化参数的最佳方法是什么?(理想情况下不使用异常处理…) 编辑:基于第一个响应的后续行动: "2. Initialize with predefinied defaults and continue" 如何检查某些内容是否未初始化 下面是我希望使用的方法的一些伪代码: public static void test(int i) { if(!is.initialized(i) {
"2. Initialize with predefinied defaults and continue"
如何检查某些内容是否未初始化
下面是我希望使用的方法的一些伪代码:
public static void test(int i) {
if(!is.initialized(i) {
i = 0;
}
// Do stuff with i
}
编辑2:重载似乎需要很多工作。我宁愿使用一种方法,并用默认值处理每种情况。也就是说,我不是专家,我很想知道这里的最佳实践是什么。视情况而定
无论哪种方法,您都需要清楚地记录它。由于Java不支持默认参数,我建议使用覆盖可选参数的方法的重载版本,尽管根据您拥有的可选参数的多少,这可能会变得混乱 编辑: 正如注释中所建议的,您可以使用varargs收集可变数量的参数,然后在方法中包含处理强制参数和可选参数的不同组合的逻辑 这只需要一种方法。看到这个了吗
使用varargs,您可以使用与伪代码中类似的逻辑。由于Java不支持默认参数,我建议使用覆盖可选参数的方法的重载版本,尽管这可能会变得混乱,具体取决于您拥有的可选参数数量 编辑: 正如注释中所建议的,您可以使用varargs收集可变数量的参数,然后在方法中包含处理强制参数和可选参数的不同组合的逻辑 这只需要一种方法。看到这个了吗
使用varargs,您可以使用与伪代码中类似的逻辑。重载不是很多工作。通常,您会执行以下操作:
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);
}
这样,您只需要实现一次处理逻辑,然后使用简短的单行方法来填充缺少的内容,并将控制权传递给执行实际工作的方法。重载不是一件很麻烦的事情。通常,您会执行以下操作:
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);
}
这样,您只需要实现一次处理逻辑,然后使用简短的单行方法来填充缺少的内容,并将控制权传递给执行实际工作的方法。Java方法使用varargs还是列出所有预期参数?Java方法使用varargs还是列出所有预期参数?谢谢Greg!这对我来说真的很清楚。我将使用重载。谢谢Greg!这对我来说真的很清楚。我将使用重载。谢谢克里斯!在进一步研究之后,你的第一个建议似乎是最好的。Greg Hewgill也应该得到赞扬,他在你的评论中提到超载似乎是一项艰巨的工作;我想当然地认为你知道如何超载,但你说你不是专家谢谢克里斯!在进一步研究之后,你的第一个建议似乎是最好的。Greg Hewgill也应该得到赞扬,他在你的评论中提到超载似乎是一项艰巨的工作;我想当然地认为你知道如何超载,但你说你不是一个expert@BalusC-我认为这些建议没有意义。他询问的是如何调用Java方法,而不是运行Java应用程序。Java不支持未初始化参数的概念。@BalusC-我认为这些建议没有意义。他询问的是如何调用Java方法,而不是运行Java应用程序。Java不支持未初始化参数的概念。