我有一个返回不同方法及其配置的开关盒。是否可以在经过所有开关盒后将其返回。
switch (method.getindex())
{
case xxx:
result= new method(new anothermethod1(something.getindex(0), something.getindex(1)), some varibale);
break;
case yyy:
result= new method(new anothermethod2(something.getindex(0), some varibale);
break;
}
retrun result;
这需要更改为在从案例中断后返回结果,并根据它选择的情况返回结果。 应该如下所示
switch (method.getindex())
{
case xxx:
break;
case yyy:
break;
}
return result = new method( new should take the method automatically when it enters into the corresponding case , some variable);
答案 0 :(得分:3)
如果我理解正确,你会这样做:
<some type of switch result> switch_result;
switch (method.getindex())
{
case xxx:
switch_result = new anothermethod1(something.getindex(0), something.getindex(1));
break;
case yyy:
switch_result = new anothermethod2(something.getindex(0));
break;
}
retrun new method(switch_result, some varibale);
这是对的吗?
问题是放置什么&lt;某种类型的开关结果&gt;。您需要选择以下类型之一:
还有一项要求。 &#34;方法&#34;必须有一个构造函数取&lt;某种类型的开关结果&gt;。否则它就不会起作用。
另请注意,如果采用&#34;方法&#34; class具有所有三种类型的构造函数(anothermethod1,anothermethod2和&lt;某种类型的开关结果&gt;)然后在上面的代码中用于&lt;某种类型的开关结果&gt;将被召唤。
以下是一个例子:
public class C {
static class A {}
static class B {}
C(A a, int x) { System.out.println("A " + x); }
C(B b, int x) { System.out.println("B " + x); }
C(Object o, int x) { System.out.println("Object " + x); }
public static void main(String...args) {
Object switch_result = null;
switch (args.length) {
case 0:
switch_result = new A();
break;
case 1:
switch_result = new B();
break;
}
C result = new C(switch_result, 42);
}
}
无论你传递给主要的论点有多少,它都会打印出#42;对象42&#34;
答案 1 :(得分:0)
您可以在每个return
内放置这些不同的case
语句,这样您就不需要在每个break
的末尾使用case
个关键字。< / p>
答案 2 :(得分:0)
在每种情况下,都有一组不同的变量,即
case xxx:
method1 = new AnotherMethod1(Something.getIndex());
var1 = someVariable;
然后在外面如果是switch语句:
return new Method(method1, var1);
希望这有帮助吗?