【发布时间】:2016-11-24 11:22:42
【问题描述】:
我的代码中有很多布尔变量,我想将它们传递给函数。
public myClass {
boolean isA, isB, isC, isD, isE, isF, isG;
// loop to set booleans true or false
String str = addString(isA, isB, isC, isD, isE, isF, isG);
}
private String addString(boolean isA, boolean isB, boolean isC, boolean isE, boolean isF, boolean isG) {
//code
}
程序的工作方式在任何时候都会有 2-3 个变量为真。我想避免将所有这些布尔值作为参数,所以我正在考虑将真正的布尔值传递给 ArrayList,如下所示:
public myClass {
boolean isA, isB, isC, isD, isE, isF, isG;
// loop to set booleans true or false
ArrayList<boolean> list = new ArrayList();
if(isA) list.add(isA);
// same check for every variable
String str = addString(list);
}
private String addString(ArrayList<boolean>list) {
//code
}
有没有更好的方法?我想知道每次传递哪个布尔值。
【问题讨论】:
-
你能展示你的代码吗?
-
长参数列表被认为是代码异味。将所有这些布尔值包装在一个类或一个 Map 中并传递该对象。
-
感谢您的回答。我刚刚添加了一些代码。
-
这取决于您打算如何使用这些布尔值。您可以将它们包装在一个数组中并进行迭代。 boolean[] vars = {isA,isB,isC,isD,isE,isF,isG};
-
非常感谢@Januson!它完全按照我的意愿工作。
标签: java arraylist netbeans boolean