gpt4 book ai didi

java - 什么对象存储在 ValueStack 中

转载 作者:行者123 更新时间:2023-11-29 04:42:17 25 4
gpt4 key购买 nike

下面是我的代码,当我执行它时,它显示大小为 3,但是当我弹出对象时,我只得到 2 个对象。

import java.util.*;
import com.opensymphony.xwork2.util.ValueStack;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class HelloWorldAction extends ActionSupport {

private static final long serialVersionUID = 1L;
private String name;

public String execute() throws Exception {
ValueStack stack = ActionContext.getContext().getValueStack();
Map<String, Object> context = new HashMap<String, Object>();

context.put("key1", new String("This is key1"));
context.put("key2", new String("This is key2"));
context.put("key3", new String("This is key3"));
stack.push(context);

System.out.println("Size of the valueStack: " + stack.size());

for (int i = 0; i < stack.size(); i++) {
System.out.println(i + ": " + stack.pop().toString());
}
return "success";
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

请解释我是否做错了?

Wnd 我想知道 ValueStack 中存储了哪些对象以及如何检索这些对象?

最佳答案

您滥用了 context 和 map 。

首先,您有一个操作 contextvalueStack

然后您创建了一个名为 context 的映射并将其推送到堆栈。

然后您已经开始遍历堆栈,但是堆栈是一个不同的对象,它有 context 推过去。

要从堆栈中取回上下文,您需要从valueStackpop()peek()。然后您可以将其作为 map 进行迭代。

代码:

context = (Map<String, Object>)stack.pop();
for (Map.Entry<String, Object> entry : context.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}

关于java - 什么对象存储在 ValueStack 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38694405/

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