1

我在 JMeter 中使用 BeanShell。BeanShell 是一个不支持泛型的 Java 解释器。只要我输入一个尖括号(例如“<”),我的脚本就会被拒绝。

如果我可以使用泛型,我会执行以下操作:

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

但是我无法创建变量条目,因为我不允许Map.Entry<String,Object>在我的脚本中声明。

所以 - 给定我的方法entrySet()和它返回的类型,Set<Map.Entry<String,Object>>有什么方法可以在不显式引用泛型类型的情况下获取(或迭代)这个集合中的键列表?

例如:

for ( String keys : vars.entrySet().somethingMagic() ) {
    System.out.println( "  key = " + key );
}
4

4 回答 4

7

尝试:

for ( Map.Entry entry : vars.entrySet() ) {
    System.out.println( "  key = " + entry.getKey() );
}

或者:

for ( String keys : vars.keySet()) {
    System.out.println( "  key = " + key );
}
于 2013-01-15T15:16:47.530 回答
3

假设 vars 是一个 Map,你可以调用vars.keySet().

于 2013-01-15T15:14:01.397 回答
1

只需使用没有泛型的原始代码:

for ( Map.Entry entry : vars.entrySet() ) {
    System.out.println( "  key = " + entry.getKey() );
}

可能会给你一个警告,但应该仍然有效

于 2013-01-15T15:17:43.613 回答
0

在外部文件中使用 jsr223 + groovy。这更适合:

  • 表现

  • 保持最新(您可以使用 JAVA 6 语法)

...

在即将到来的 2.9 中,您将能够通过将其放入文本区域来进行缓存:

于 2013-01-15T15:24:55.337 回答