gpt4 book ai didi

java - 可以将函数调用顺序存储在列表中吗?

转载 作者:行者123 更新时间:2023-12-01 18:21:31 25 4
gpt4 key购买 nike

我有一个类,它通过连续调用函数来构建字符串。

private String mString;
addFoo();
addBar();
addBaz();

但是,在 RTL 环境中,我需要反向构建字符串,即函数调用顺序应该是:

addBaz();
addBar();
addFoo();

是否可以将此调用顺序存储在列表中,以便我在 RTL 环境中可以反向遍历它?我试图避免重复流程,因为我知道它会完全相反。有比我想到的更好的解决方案吗?

最佳答案

您可以定义一个接口(interface),例如

public interface Action {
public void performAction();
}

并存储 List<Action> 。然后,只需以相反的顺序迭代列表即可。您还可以使用 Deque<Action> :首先推送操作,然后弹出它们,直到双端队列为空。如果您不需要在反向执行操作后跟踪操作,请选择该解决方案。否则,请使用 LinkedList以获得更好的性能。

如果您使用 Java 8 并且只有几个不同的操作,则可以使用 lambda 表达式来定义它们。例如:

 Action a = () -> System.out.println("Hello world");

如果您使用 Java 7 或更低版本,请使用匿名类:

 Action a = new Action() {
@Override
public void performAction() {
System.out.println("Hello world");
}
}

关于java - 可以将函数调用顺序存储在列表中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27630370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com