你好,我是 Java 新手,我正在锁定一种向方法发送多个参数的方法,但该方法也需要返回一些值,例如:
var1,var2,var3 = convertTonegative(varx,vary,varz);
因此,在这种情况下,在对该方法进行一些检查后,该方法需要向每个变量返回 3 个值,这意味着:
varx 检查后将值赋给 var1
检查后变化将值分配给var2
varz 检查后将值分配给 var3
我只是创建一个可以接收任何值的类,但我不知道如何返回这些值。
public class converToNegative{
public converToNegative(String... args) { // Constructor
convertAll(args);
}
private String[] convertAll(String[] args) {
for (int i = 0; i < args.length; i++){
if (args[i].equals("") || args[i] == null) {
args[i] = "-1";
}
}
return args;
}
}
我明白你想做什么。在我学习Java的早期,我也想做同样的事情,但总觉得这是该语言中缺少的功能。 但后来我意识到,虽然这增加了语言语法的复杂性,但仍然可以在不从方法返回多个值的情况下完成任务。
就我个人而言,我觉得最好的方法是使用 Streams。您可以只流式传输一个列表,如果满足条件,则使用映射函数修改值,然后返回列表。
public static void main(String[] args) {
String[] list = new String[]{"1", "2", "3", "-5", "", null};
List<String> processedList = Arrays.asList(list).stream().map(num -> (num!=null && num!="") ? num : "-1").collect(Collectors.toList());
System.out.println("processedList: " + processedList);
}
但是,如果您只是在学习并希望使用相同的方法来完成此操作,则需要重构代码以针对所有参数一一调用该方法。像这样的东西:
public class converToNegative{
public converToNegative(String... args) { // Constructor
convertAll(args);
}
private String[] convertAll(String[] args) {
for (int i = 0; i < args.length; i++){
args[i] = convert(args[i]);
}
return args;
}
private String convert(String num) {
if (args[i].equals("") || args[i] == null)
return "-1";
else
return num;
}
}