[java]Gsonを用い、jsontxtからHashMapへ成形する際のエラー

JavaにてGsonを用い、保存したJsonをHashMapに格納しようとしてます。

@SuppressWarnings("unchecked") public static void loadconfig() { if (!(file_.exists())) file_.mkdir(); try (JsonReader reader = new JsonReader(new FileReader(file_ + "/main_menu.json"))) { reader.beginObject(); Gson gson = new Gson(); items = (HashMap<Integer, String>) gson.fromJson(reader, Type.class); System.out.println(items); } catch (IOException e) { FileWriter writer; try { writer = new FileWriter(file_ + "/main_menu.json"); writer.write(""); } catch (IOException e1) { e1.printStackTrace(); } } }

保存されているJson
{"0":"REDSTONE_ORE","1":"REDSTONE_ORE","2":"REDSTONE_ORE","3":"REDSTONE_ORE"}
格納したい変数
HashMap<Integer, String> items = new HashMap<>();

上記を実行すると
java.lang.RuntimeException: Unable to invoke no-args constructor for interface java.lang.reflect.Type. Registering an InstanceCreator with Gson for this type may fix this problem.
at com.google.gson.internal.ConstructorConstructor$14.construct(ConstructorConstructor.java:228) ~[gson-2.8.8.jar:?]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:212) ~[gson-2.8.8.jar:?]
at com.google.gson.Gson.fromJson(Gson.java:932) ~[gson-2.8.8.jar:?]
at item_safety.plugin.main.Main.loadconfig(Main.java:34) ~[?:?]
at item_safety.plugin.main.Core.onEnable(Core.java:14) ~[?:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[spigot-api-1.18.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:342) ~[spigot-api-1.18.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:480) ~[spigot-api-1.18.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_18_R1.CraftServer.enablePlugin(CraftServer.java:521) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3443-Spigot-699290c-2c1e499]
at org.bukkit.craftbukkit.v1_18_R1.CraftServer.enablePlugins(CraftServer.java:435) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3443-Spigot-699290c-2c1e499]
at org.bukkit.craftbukkit.v1_18_R1.CraftServer.reload(CraftServer.java:920) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3443-Spigot-699290c-2c1e499]
at org.bukkit.Bukkit.reload(Bukkit.java:789) ~[spigot-api-1.18.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:27) ~[spigot-api-1.18.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:149) ~[spigot-api-1.18.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_18_R1.CraftServer.dispatchCommand(CraftServer.java:829) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3443-Spigot-699290c-2c1e499]
at org.bukkit.craftbukkit.v1_18_R1.CraftServer.dispatchServerCommand(CraftServer.java:814) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3443-Spigot-699290c-2c1e499]
at net.minecraft.server.dedicated.DedicatedServer.bf(DedicatedServer.java:453) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3443-Spigot-699290c-2c1e499]
at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:429) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3443-Spigot-699290c-2c1e499]
at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1206) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3443-Spigot-699290c-2c1e499]
at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1034) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3443-Spigot-699290c-2c1e499]
at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:304) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3443-Spigot-699290c-2c1e499]
at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.lang.UnsupportedOperationException: Interface can't be instantiated! Interface name: java.lang.reflect.Type
at com.google.gson.internal.UnsafeAllocator.assertInstantiable(UnsafeAllocator.java:117) ~[gson-2.8.8.jar:?]
at com.google.gson.internal.UnsafeAllocator$1.newInstance(UnsafeAllocator.java:49) ~[gson-2.8.8.jar:?]
at com.google.gson.internal.ConstructorConstructor$14.construct(ConstructorConstructor.java:225) ~[gson-2.8.8.jar:?]

といった、変換できない旨のエラーが発生します。
調べてみましたが、間違いが判りませんでした。
お手数でがよろしくお願いいたします。

コメントを投稿

0 コメント