我对Java很陌生。我想做的就是有一本这样的字典。
我的代码:
import java.util.regex.Pattern;
import java.util.ArrayList;
import java.util.List;
public class Solution{
public enum Num{
COMPLETE,
NOTYET
}
public static final Map<Num,String> Numbering;
static{
Map<Num,String> putting = new EnumMap<>(Num.class);
putting.put(Num.COMPLETE, "comp");
putting.put(Num.NOTYET, "yet");
}
everything = Collections.unmodifiableMaps(putting);
public static void main(String[] args){
System.out.println(everything);
}
}
首先,我想在类Solution中为枚举创建一个类(请告诉我,如果我理解不正确,也许枚举不是一个类)。然后,我创建了一个方法...。实际上,在这里我不知道为什么需要在LINE 13中使用“静态”来存储字典。
我希望最终打印字典并检查是否正确。
我的预期输出: ----我显示的是python字典,因为我主要使用python ----
COMPLETE:"comp"
NOTYET:"yet"
尝试在linux中编译时出现我的错误:
everything = Collections.unmodifiableMaps(putting); //this line with problem.
答案 0 :(得分:0)
将everything = Collections.unmodifiableMaps(putting);
放在静态块中。
此外,您没有字段everything
。您是说Numbering
?
答案 1 :(得分:0)
请忽略我的问题。解决了:
import java.util.regex.Pattern;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
public class Solution{
public enum Num{
COMPLETE,
NOTYET,
}
public static final Map<Num,String> Numbering;
static{
Map<Num,String> putting = new EnumMap<>(Num.class);
putting.put(Num.COMPLETE, "comp");
putting.put(Num.NOTYET, "yet");
Numbering = Collections.unmodifiableMap(putting);
}
public static void main(String[] args){
System.out.println(Numbering);
}
}
答案 2 :(得分:0)
Enum类型已经可以将值与Enum代码关联。请参见official documentation中的“行星”示例。 不确定为什么以后要处理地图,但这可以简化代码!
您可以创建以下内容:
public enum Num {
COMPLETE("comp"),
NOTYET ("notyet");
private final double value;
Num(String value) {
this.value = value;
}
private String getValue() {
return this.value;
}
}