javascript - 试图将一个小的 javascript 代码转换为 java
问题描述
我有这个来自javascript的代码片段(我不熟悉),但我需要这个东西来传递我的一个java方法,
example.setChoices([{ value : 'One', label : 'Label One', disabled : true }], 'value', 'label', false);
我正在研究 w3schools 和其他 javascript 资源,但它看起来不是一个简单的地图..
我没有得到,这在 java 中会是什么样的地图
我的目标是将此数据发送到我的 java 方法。
解决方案
完全错误的方法,但有可能——您可以创建<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());
}
*/
注册。提供的代码类似于:
Map<Object, Object> test = new HashMap<>();
test.put("value", "value");
test.put("label", "label");
test.put("disabled", false);
注册。自定义类,更好的处理方法是创建例如。
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;
}
推荐阅读
- java - 队列在java中不带参数
- angular - 使用 ShadowDom 时 ngbmodal 的样式
- ios - 为什么几乎每个应用程序在您设置遥远的日期后都会崩溃?
- flutter - 当我发布我的应用程序颤振应用程序时,这发生在 android studio
- android - 在cardview中没有以下功能意图错误
- java - 在 Parent Pom 中定义的 Maven Plugin 有时不会在 Child 没有声明的情况下触发
- reactjs - 在带有 redux-saga 的反应组件中使用异步等待
- regex - 如何获取与命名捕获组匹配的子字符串?
- windows - 如何使用 tcpvcon.exe (Windows 10) 显示特定进程的打开连接的端口号?
- sql - SQL Server 子查询错误 - 无法绑定多部分标识符