java - java方法的返回值

标签 java class variables return

我有一个用 java 编写的程序,用于返回值表。后来,随着该程序功能的增长,我发现我想访问方法中未返回的变量,但我不确定最好的方法。我知道您不能返回多个值,但是如果不进行重大修改,我将如何访问该变量呢? 这是我的代码的简化版本:

public class Reader {
    public String[][] fluidigmReader(String cllmp) throws IOException {
        //read in a file
        while ((inpt = br.readLine()) != null) {
            if (!inpt.equals("Calls")) {
                continue;
            }
            break;
        }
        br.readLine();
        inpt = br.readLine();
        //set up parse parse parameters and parse
        prse = inpt.split(dlmcma, -1);
        while ((inpt = br.readLine()) != null) {
            buffed.add(inpt);
        }
        int lncnt = 0;
        String tbl[][] = new String[buffed.size()][rssnps.size()];
        for (int s = 0; s < buffed.size(); s++) {
            prse = buffed.get(s).split(dlmcma);
            //turns out I want this smpls ArrayList elsewhere
            smpls.add(prse[1]);
//making the table to search through
            for (int m = 0; m < prse.length; m++) {
                tbl[lncnt][m] = prse[m];
            }
            lncnt++;
        }
        //but I return just the tbl here
        return tbl;
    }

任何人都可以推荐一种在另一个类中使用 smpls 而不返回它的方法吗?这可能是当您使用 get/set 类型的设置时吗? 抱歉,如果这看起来是一个显而易见的问题,我对模块化编程世界仍然很陌生

最佳答案

现在你就有了这个tbl变量。将其包装在一个类中并将列表添加到该类中。

class TableWrapper {
    // default accessing for illustrative purposes - 
    // setters and getters are a good idea
    String[][] table;
    List<String> samples;

    TableWrapper(String[][] table, List<String> samples) {
        this.table = table;
        this.samples = samples;
    }
}

然后重构您的方法以返回包装器对象。

public TableWrapper fluidigmReader(String cllmp) throws IOException {
    // your code here
    String tbl[][] = new String[buffed.size()][rssnps.size()];
    TableWrapper tw = new TableWrapper(tbl,smpls);
    // more of your code
    return tw;
}  

然后在你的代码中你要去的地方

String[][] tbl = fluidigmReader(cllmp);

你应该去

TableWrapper tw = fluidigmReader(cllmp);
String[][] tbl = tw.table;
List<String> smpls = tw.samples;

关于java - java方法的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14146322/

相关文章:

java - 无法创建实例 - 构造函数具有私有(private)访问权限

java - 为什么我无法将内容设置到返回的对象 (Java)?

python - 使用 Python 插入变量 MySQL,不工作

eclipse - 检查java代码中的回文

c++ - 设置私有(private)数据成员

java - 针对 xsd 执行 xml 验证

java - Android:我的回收站 View 不显示列表

javascript - 使用 Javascript 变量更改 HTML 中的背景颜色

java - 用于在 Java 中播放的硬件 MIDI 输出?

java - 如何在 Datadog 仪表板小部件中显示正确的货币值(value)