gpt4 book ai didi

Java 类字段,对象在 Beanshell 中的使用

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:49:27 24 4
gpt4 key购买 nike

我正在使用带有 JSF 和 Beanshell 脚本的 Java。我想在 beanshell 中使用 java 类的字段和对象。我已尽力从谷歌获得帮助,但找不到任何有用的信息。例如

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import bsh.EvalError;
import bsh.Interpreter;

public class C {

static Map<String,Object> map = new HashMap<String,Object>();
static List<String> list = new ArrayList<String>();
static Map<String,Integer> integerMap = new HashMap<String,Integer>();

public static void main(String[] arg) throws EvalError{
list.add("Hello");
list.add("World");
Interpreter i = new Interpreter(); // Construct an interpreter
map.put("stringList", list);//in java
i.eval("map.put(\"stringList\", list)");// gives error
List list = (List) map.get("stringList");
for(String str:(List<String>)list){
System.out.println(str);
}
}
}

我想对 beanshell 中的同一个对象执行所有可用于 java 集合的操作。

Jmeter提供这样的设施,用户可以在其中更新 beanshell 中的变量,并且根据链接上给出的详细信息,Jmeter 似乎正在使用字符串映射,我想做同样的事情,但它是针对对象的。

如果可用于实现我的要求的任何技术或框架是 java、beanshell、JSF 或 java 中的其他可用选项,我将不胜感激。

最佳答案

在 JMeter 的 Beanshell 或更好的 JSR223 Sampler(Java 语言)中,您可以将对象放入 JMeter 变量中:

JMeterVariables vars = JMeterContextService.getContext().getVariables();
vars.putObject("stringList", stringList);

并得到:

vars.getObject("stringList");

在 Java 一般情况下,您需要使用 set 方法将变量添加到 Beanshell Interpreter:

    list.add("Hello");
list.add("World");
Interpreter i = new Interpreter(); // Construct an interpreter

map.put("stringList", list);//in java
try {
i.set("map", map);
i.set("list", list);
System.out.println(i.eval("map.put(\"stringList\", list)"));
} catch (EvalError e1) {
e1.printStackTrace();
}

关于Java 类字段,对象在 Beanshell 中的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46257426/

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