java - 使用数组作为参数返回多个值是一种不好的做法吗

标签 java

我有时(实际上,经常)发现自己使用单元素数组从一个方法返回多个值。像这样:

public static int foo(int param1, int param2[], String param3[])
{
    // method body
    ....
    // set return values
    param2[0] = <some value>;
    param3[0] = <some value>;

    return <some value>;
}

这是一种不好的做法吗? (好像是因为有小伙伴说2秒都不知道在干什么!) 但我首先使用它的原因是因为它看起来最接近 C++ 中的 pass-by-reference。在 C++ 中并没有阻止这种做法,所以 ...

但如果这确实是一种错误的做事方式,你知道如何以干净的方式重写它吗?

谢谢

最佳答案

创建一个包含您要返回的数据的对象。

然后您可以返回该对象的一个​​实例。

class FooData {
    private int someInt;
    private int anotherInt;
    private String someString;

    public FooData(int a, int b, String c) {
        someInt = a;
        anotherInt = b;
        someString = c;
    }
}

public FooData foo() {
    // do stuff
    FooData fd = new FooData(blah, blahh, blahhh);
    return fd;
}

关于java - 使用数组作为参数返回多个值是一种不好的做法吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14820115/

相关文章:

java - 在 jdbcTemplate 或 DataSource 上提交

java - 我的 pom.xml 包含此 maven-formatter-plugin,但未构建。我需要定义格式目标吗?

java - arraylist 操作按索引添加和删除的运行时

java - 对 -fx-alignment : LEFT saying no enum constant javafx. geometry.Pos.LEFT 发出警告

java - 将文件中的数字读入数组时遇到问题

java - 是否可以在 Java 中强制调用另一个方法内的方法?

java - 为什么 0.1 正确地表示为 float ? (我知道为什么不是 2.0-1.9 的结果)

Java 正则表达式 : How to match a string if its not consisting a list of certain top level domains

java - 使用 api 26 构建应用程序,但使用 api 24 构建库

java - 在 Java 中定义内部(非静态嵌套)类时为什么要使用访问说明符?