【发布时间】:2020-09-16 12:29:08
【问题描述】:
热烈的问候。
我有一个场景,我有 10 种方法,即 process1、process2...、process10 根据输入,我需要按特定顺序执行 10 个方法中的几个。 1)1,3,5,7 2)2,4,6,8 3)1,5,9,10
无论我执行什么顺序,第一种方法的输出都应该用作第二种方法的输入,依此类推。
我在互联网上搜索了很多,但没有找到合适的。我开始做下面的代码。 截至目前,我正在使用 java 的 concat 方法来实现这一点。
public class Perform {
static String op = "";
public static void main(String[] args) {
process(list);
}
public static void process(List<String> list)
{
for(String str: list)
{
if(str.startsWith("Samsung"))
{
process1("test").concat(process2(op).concat(process3(op)).concat(process4(op)));
}
}
}
public static String process1(String str)
{
System.out.println("process1 start");
System.out.println("str1:"+str);
System.out.println("process1 end");
return str+"1";
}
public static String process2(String str)
{
System.out.println("process2 start");
System.out.println("str2:"+str);
System.out.println("process2 end");
return str+"2";
}
public static String process3(String str)
{
System.out.println("process3 start");
System.out.println("str3:"+str);
System.out.println("process3 end");
return str+"3";
}
public static String process4(String str)
{
System.out.println("process4 start");
System.out.println("str4:"+str);
System.out.println("process4 end");
return str+"4";
}
}
输出:
进程1开始
str1:测试
进程1结束
进程2开始
str2:
操作:
进程2结束
进程3开始
str3:
进程3结束
进程4开始
str4:
进程4结束
操作:test1234
答案是预期的并处理所有 4 种方法,但问题是:它没有打印参数“str”的值。为什么?
如果我保留代码
op = process1("test");
op = process2(op);
op = process3(op);
op = process4(op);
代替
process1("test").concat(process2(op).concat(process3(op)).concat(process4(op)));
然后它正在打印 str 的值,这是一个参数。
请从下面的代码中回答问题,并为这种情况推荐一些好的代码。
【问题讨论】:
-
您将
op作为参数传递给每个函数。op是一个空白字符串,所以显然它不会打印任何东西。 -
:) 感谢您的及时回答。 :(对于减少这很好,对于同样的问题,我们有更好的解决方案吗
-
我尝试将每个方法的值分配给 op,但现在的问题是:它显示方法中的 sop 正确,但它在方法末尾显示 op 值作为 test1test12test123test1234。这令人困惑。