我需要从另一个类运行一个方法,但我想从我要调用方法的类中使用该方法的变量。我不想传入参数,因为该方法的变量太多,而且会破坏原始类的代码。
我的代码示例如下 -
从
运行方法的类variable1;
variable2;
variable3;
otherClass OC = new OtherClass();
otherClass.method();
和所谓的'otherClass'方法(带有方法的类),例如
variable1;
variable2;
variable3;
public void method()
{
//DOES STUFF WITH variable1 variable2 and variable3
}
我想要它做的是使用我调用方法的类中的变量运行方法,即我首先发布的代码的类。有没有办法做到这一点?
答案 0 :(得分:3)
正如OldProgrammer所说,一个合适的解决方案是使用容器来封装你的方法所需的所有变量。
一个例子:
public class ContainerClassExample {
private static class Container {
Object variable1, variable2, variable3;
public Container(Object variable1, Object variable2, Object variable3) {
this.variable1 = variable1;
this.variable2 = variable2;
this.variable3 = variable3;
}
}
public static void main(String[] argv) {
Container aContainer = new Container("a", "b", "c");
methodA(aContainer);
System.exit(0);
}
public static void methodA(Container input) {
// Do something with variable1, variable2, and variable3
}
}
输入参数的数量越多,我建议您使用builder pattern创建容器。