如何将多个值发送到方法并在 Java 中的不同变量中接收多个值

问题描述 投票:0回答:1

你好,我是 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 variables return-type
1个回答
0
投票

我明白你想做什么。在我学习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;
    }

}
© www.soinside.com 2019 - 2024. All rights reserved.