質問編集履歴
1
コマンドプロンプト文を変更し、ClassPathは通した。
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,27 +10,47 @@
|
|
10
10
|
|
11
11
|
コマンドプロンプト上で下記を実行すると、
|
12
12
|
|
13
|
+
~~kotlinc-jvm.bat -include-runtime -d json.jar json.kt~~
|
14
|
+
|
15
|
+
(コンパイルは通りました)
|
16
|
+
|
13
17
|
```
|
14
18
|
|
15
|
-
kotlinc-jvm.bat -include-runtime -d json.jar
|
19
|
+
kotlinc-jvm.bat ".\json.kt" -cp "~\moshi-1.9.2.jar" -include-runtime -d ".\json.jar"
|
20
|
+
|
21
|
+
java -cp "~\moshi-1.9.2.jar;~\okio-1.14.0.jar;.\json.jar" JsonKt
|
22
|
+
|
23
|
+
|
16
24
|
|
17
25
|
```
|
18
26
|
|
19
27
|
以下のエラーが出ます。
|
20
28
|
|
29
|
+
~~json.kt:1:12: error: unresolved reference: squareup~~
|
30
|
+
|
31
|
+
~~import com.squareup.moshi.Json;~~
|
32
|
+
|
33
|
+
~~ ^~~
|
34
|
+
|
35
|
+
~~json.kt:8:16: error: unresolved reference: Moshi~~
|
36
|
+
|
37
|
+
~~ val adapter = Moshi.Builder().build().adapter(User::class.java);~~
|
38
|
+
|
39
|
+
~~ ^~~
|
40
|
+
|
21
41
|
```
|
22
42
|
|
23
|
-
json.
|
43
|
+
Exception in thread "main" java.lang.IllegalArgumentException: Cannot serialize Kotlin type User. Reflective serialization of Kotlin classes without using kotlin-reflect has undefined and unexpected behavior. Please use KotlinJsonAdapter from the moshi-kotlin artifact or use code gen from the moshi-kotlin-codegen artifact.
|
24
44
|
|
25
|
-
|
45
|
+
at com.squareup.moshi.ClassJsonAdapter$1.create(ClassJsonAdapter.java:83)
|
26
46
|
|
27
|
-
|
47
|
+
at com.squareup.moshi.Moshi.adapter(Moshi.java:138)
|
28
48
|
|
29
|
-
|
49
|
+
at com.squareup.moshi.Moshi.adapter(Moshi.java:98)
|
30
50
|
|
31
|
-
|
51
|
+
at com.squareup.moshi.Moshi.adapter(Moshi.java:72)
|
32
52
|
|
33
|
-
|
53
|
+
at JsonKt.main(json.kt:11)
|
34
54
|
|
35
55
|
```
|
36
56
|
|
@@ -42,7 +62,9 @@
|
|
42
62
|
|
43
63
|
```Kotlin
|
44
64
|
|
65
|
+
//json.kt
|
66
|
+
|
45
|
-
import com.squareup.moshi.
|
67
|
+
import com.squareup.moshi.*;
|
46
68
|
|
47
69
|
|
48
70
|
|
@@ -56,9 +78,11 @@
|
|
56
78
|
|
57
79
|
// クラス→JSON変換
|
58
80
|
|
59
|
-
val
|
81
|
+
val m:Moshi = Moshi.Builder().build();
|
60
82
|
|
83
|
+
val ja:JsonAdapter<User> = m.adapter(User::class.java);
|
84
|
+
|
61
|
-
val decodeJson = a
|
85
|
+
val decodeJson:String = ja.toJson(user);
|
62
86
|
|
63
87
|
|
64
88
|
|
@@ -84,8 +108,6 @@
|
|
84
108
|
|
85
109
|
}
|
86
110
|
|
87
|
-
|
88
|
-
|
89
111
|
```
|
90
112
|
|
91
113
|
|
@@ -94,7 +116,15 @@
|
|
94
116
|
|
95
117
|
|
96
118
|
|
97
|
-
「unresolved reference」でググると、import時の誤字やそもそもimportしてないという情報は見つかりましたが、import自体でエラーというケースは見つからず、行き詰まってしまいました。
|
119
|
+
~~「unresolved reference」でググると、import時の誤字やそもそもimportしてないという情報は見つかりましたが、import自体でエラーというケースは見つからず、行き詰まってしまいました。
|
120
|
+
|
121
|
+
~~
|
122
|
+
|
123
|
+
-cpオプションでClassPathは通せたと思うのですが、型の渡し方が良くないのかエラーとなってしまいました。
|
124
|
+
|
125
|
+
"User::class.java"を"User.class","User()","User"などに変えるとコンパイルエラーでした。
|
126
|
+
|
127
|
+
そもそも"::"の意味がわからないのと、"class.java"なんてファイル作った覚えがないのが原因でしょうか。
|
98
128
|
|
99
129
|
|
100
130
|
|