我有这个来自javascript的代码段(我不熟悉),但是我需要这个东西来传递我的java方法之一
example.setChoices([{ value : 'One', label : 'Label One', disabled : true }], 'value', 'label', false);
我正在研究w3schools和其他JavaScript来源,但它看起来似乎不是简单的地图。.
我没有得到,用Java会是什么样的Map
我的目标是将此数据发送到我的java方法。
答案 0 :(得分:1)
完全错误的方法,但是有可能-您可以创建<Object,Object>
映射。每个类都是对象的子代,
除了您可能无法用其他方式做到这一点之外,因为在JS中您可以看到混合的数据类型。
当然可以。将布尔值转换为字符串,猜测它还有更好的方法来拥有“原始对象图”。
Map<Object, Object> test = new HashMap<>();
test.put("firstString", "first");
test.put("secondString", "second");
test.put("thirdBool", true);
/* print
Iterator entries = test.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry entry = (Map.Entry) entries.next();
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
*/
Reg。提供的代码类似于:
Map<Object, Object> test = new HashMap<>();
test.put("value", "value");
test.put("label", "label");
test.put("disabled", false);
Reg。自定义类,更好的处理方法是创建例如。
class someFooObject{
private String value;
private String label;
private boolean disabled;
someFooObject(String value,String label,boolean disabled){
this.value=value;
this.label=label;
this.disabled=disabled;
}
public String getValue(){
return this.value;
}
public String getLabel(){
return this.value;
}
public boolean isDisabled(){
return this.value;
}
}
然后您可以照常使用它来放置地图
Map<Integer, someFooObject> test = new HashMap<>();
test.put(0,new someFooObject("first","1 label",false));
//Check for params
test.get(0).isEnabled();
test.get(0).getValue();
test.get(0).getLabel();
Java不支持默认值,但是您可以通过以下方式覆盖构造函数:
someFooObject(String value,String label,boolean disabled){
this.value=value;
this.label=label;
this.disabled=disabled;
}
someFooObject(String value,String label){
this.value=value;
this.label=label;
//kind of default value
this.disabled=true;
}