如何解决使用相同的输入处理多个方法
热烈的问候。
我有一个场景,我有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";
}
}
输出:
process1开始
str1:test
process1结束
process2开始
str2:
op:
process2结束
process3开始
str3:
process3结束
process4开始
str4:
process4结束
op: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的值。
请从下面的代码中回答问题,并为我提出一些适合这种情况的代码。
解决方法
我找到了解决方案。我开发了以下代码来解决它。请让我知道是否有人对此有更好的解决方案。
public class Perform {
private static List<Integer> SamsungMethodExecution = Arrays.asList(1,2,3,4,5);
private static List<Integer> NokiaMethodExecution = Arrays.asList(6,7,8);
private static List<Integer> LgMethodExecution = Arrays.asList(9,10);
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Lgmsg");
list.add("Samsungmsg");
list.add("Nokiamsg");
list.add("Lgmsg");
list.add("Samsungmsg");
list.add("Nokiamsg");
list.add("Lgmsg");
list.add("Samsungmsg");
list.add("Nokiamsg");
//
process(list);
}
public static void process(List<String> list)
{
for(String str: list)
{
if(str.startsWith("Samsung"))
{
System.out.println("SAMSUNG======================================");
Process.process(SamsungMethodExecution,str.replace("Samsung",""));
System.out.println("SAMSUNG======================================");
System.out.println();
}else if(str.startsWith("Nokia"))
{
System.out.println("NOKIA========================================");
Process.process(NokiaMethodExecution,str.replace("Nokia",""));
System.out.println("NOKIA========================================");
System.out.println();
}else
{
System.out.println("LG===========================================");
Process.process(LgMethodExecution,str.replace("Lg",""));
System.out.println("LG===========================================");
System.out.println();
}
}
}
public class Process {
public static String process(List<Integer> processList,String msg) {
String output = "";
for(int i: processList)
{
switch(i)
{
case 1:
output = Process.process1(msg); break;
case 2:
output = Process.process2(msg); break;
case 3:
output = Process.process3(msg); break;
case 4:
output = Process.process4(msg); break;
case 5:
output = Process.process5(msg); break;
case 6:
output = Process.process6(msg); break;
case 7:
output = Process.process7(msg); break;
case 8:
output = Process.process8(msg); break;
case 9:
output = Process.process9(msg); break;
case 10:
output = Process.process10(msg); break;
default :
System.out.println("Sorry,no specific match found");
}
}
return output;
}
public static String process1(String msg)
{
System.out.println("process1: "+msg);
return msg;
}
public static String process2(String msg)
{
System.out.println("process2: "+msg);
return msg;
}
public static String process3(String msg)
{
System.out.println("process3: "+msg);
return msg;
}
public static String process4(String msg)
{
System.out.println("process4: "+msg);
return msg;
}
public static String process5(String msg)
{
System.out.println("process5: "+msg);
return msg;
}
public static String process6(String msg)
{
System.out.println("process6: "+msg);
return msg;
}
public static String process7(String msg)
{
System.out.println("process7: "+msg);
return msg;
}
public static String process8(String msg)
{
System.out.println("process8: "+msg);
return msg;
}
public static String process9(String msg)
{
System.out.println("process9: "+msg);
return msg;
}
public static String process10(String msg)
{
System.out.println("process10: "+msg);
return msg;
}
}
两个类,一个是主类,另一个是具有实际逻辑的Process类。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。