在方法之间传递多个变量的最佳方法是什么?我已经在第一种方法中有一种返回语句,但是我希望从第二种方法中的第一种方法访问每个变量。变量" value0"在方法" addTasks0"不被承认。
public Integer addValues(){
int value0 = sliderExample.getValue();
int value1 = sliderExample1.getValue();
int value2 = sliderExample2.getValue();
int value3 = sliderExample3.getValue();
int value4 = sliderExample4.getValue();
int value5 = sliderExample5.getValue();
int value6 = sliderExample6.getValue();
int value7 = sliderExample7.getValue();
int totalValue = (value0 + value1 + value2 + value3 + value4 + value5 + value6 + value7);
return totalValue;
}
public void addTasks0(){
Integer totalValue = addValues();
if (totalValue <= 100) {
progressBar.setValue(value0);
}
else{
int overkill = (totalValue - 100);
int margin = (value0 - overkill);
String taskTitle = inputText.getText();
String marginmessage = "The maximum priority of " + taskTitle + " is" + Integer.toString(margin) + "%";
sliderExample.setValue(0);
//custom title, warning icon
JOptionPane.showMessageDialog(null, marginmessage, "Check Math", JOptionPane.WARNING_MESSAGE);
}
}
答案 0 :(得分:0)
在您的代码中,您显示仍然可以使用sliderExample
方法访问addTasks0
,因此addValues
可以再次访问
int value0 = sliderExample.getValue();
addTasks0
方法中的。您无需传递该值。
但是如果你真的想要,你可以从addValues
返回一个int数组,其中arr [0] == value0
和arr [1] == totalValue
或者您当然可以将这些变量作为类字段移动
答案 1 :(得分:0)
您可以在类的开头定义变量,以便所有类的方法都可以访问它们。
class ClassName {
private int value0, value1, value2...;
public Integer addValues() {
value0 = sliderExample.getValue();
value1 = sliderExample1.getValue();
value2 = sliderExample2.getValue();
// etc.
}
public void addTasks0() {
Integer totalValue = addValues();
if (totalValue <= 100) {
progressBar.setValue(value0) // Initialized in addValues method
}
答案 2 :(得分:0)
我会这样做
ArrayList<SliderExample> sliderExamples = new ArrayList<>();
public int addValues() {
int sum = 0;
for(SliderExample se: sliderExamples) sum += se.getValue();
return sum;
}
public void addTask(int taskNr) {
SliderExample se = sliderExamples.get(taskNr);
int value = se.getValue();
...
}
答案 3 :(得分:0)
您可以尝试传入一个键值对列表,其中每个函数都可以使用特定的键名访问必需的数据
Map<String key,Object value) params;
...
funcA(Map params){
params.add(somePredefinedKey,newProperty);
...
funcB(params);
}
funcB(Map params){
Object paramA=params.get(somePredefinedKey);
... }
如果您按顺序通过多个方法传递参数
,这尤其有用