Search code examples
javagenericsjmeterbeanshell

Can I Get A List Of Keys In An entrySet In Java Without Using Generics?


I'm using BeanShell in JMeter. BeanShell is a Java interpreter that does not support generics. As soon as I enter an angle bracket (e.g. "<") my script will be rejected.

If I could use generics I would do the following:

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

However I cannot create the variable entry because I'm not permitted to declare Map.Entry<String,Object> in my script.

So - given my method entrySet() and the type it returns of Set<Map.Entry<String,Object>> is there any way I can get a list of (or iterate over) the keys in this set without explicitly referring to a generic type?

e.g. something like:

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

Solution

  • Try either:

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

    Or:

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