我正在尝试使用IntelliJ中的Java创建Scrabble游戏。我决定使用Map<Character, Integer>
,它将包含每个字母磁贴及其对应的得分值。我以为可以使用ofEntries
的简写形式来初始化Map的值,但是每次尝试编译程序时,都会出错。
error: cannot find symbol Map.entry('A',1)
symbol: method entry(char,int)
location: interface Map
26 errors (1 for each Map entry)
起初,我认为这可能与Map类型为Character,Integer以及提及entry(char,int)
的错误有关,但是据我了解,Java在基元及其对象包装器之间使用自动装箱。
import java.util.Map;
class Scrabble {
private final Map<Character, Integer> LETTER_SCORES = Map.ofEntries(
Map.entry('A',1), Map.entry('E',1), Map.entry('I',1), Map.entry('O',1),
Map.entry('U',1), Map.entry('L',1), Map.entry('N',1), Map.entry('R',1),
Map.entry('S',1), Map.entry('T',1), Map.entry('D',2), Map.entry('G',2),
Map.entry('B',3), Map.entry('C',3), Map.entry('M',3), Map.entry('P',3),
Map.entry('F',4), Map.entry('H',4), Map.entry('V',4), Map.entry('W',4),
Map.entry('Y',4), Map.entry('K',5), Map.entry('J',8), Map.entry('X',8),
Map.entry('Q',10), Map.entry('Z',10)
);
private String word;
private int wordScore;
Scrabble(String word) {
this.word = word;
}
答案 0 :(得分:0)
请转到项目结构|项目| Project SDK ,并在此处定义JDK> 9和Language level>9。此外,请转到 Project Structure | Java。模块,并检查是否在此定义了相应的模块语言级别。正如注释中正确提到的那样,您的代码示例应使用JDK> 9编译时不会失败。