teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

typo

2020/04/29 12:26

投稿

shiketa
shiketa

スコア4133

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  `items["age"]`の型はなんでしょうか?
2
- `val items: Map<String, Any>`なので、Any型です。
3
- 大小比較ができるためには、Comparableを実装している必要がある。Any型はComparableを実装ていないのでコンパイルエラーとなる。[Comparison operators](https://kotlinlang.org/docs/reference/operator-overloading.html#comparison)
2
+ `val items: Map<String, Any>`とあたが定義しているので、Any型です。
3
+ 大小比較ができるためには、compareTo()メソッドが定義されている必要がある(一般的にComparableインタフェースを実装かな)。Any型にcompareTo()メソッドが定義されていないのでコンパイルエラーとなる。[Comparison operators](https://kotlinlang.org/docs/reference/operator-overloading.html#comparison)
4
4
 
5
5
  だから、キャストするかなにか対応する必要がある。
6
6
 

1

typo

2020/04/29 12:26

投稿

shiketa
shiketa

スコア4133

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  `items["age"]`の型はなんでしょうか?
2
2
  `val items: Map<String, Any>`なので、Any型です。
3
- 大小比較ができるためには、Comparableを実装している必要がある。Any型は実装していないのでコンパイルエラーとなる。[Comparison operators](https://kotlinlang.org/docs/reference/operator-overloading.html#comparison)
3
+ 大小比較ができるためには、Comparableを実装している必要がある。Any型はComparableを実装していないのでコンパイルエラーとなる。[Comparison operators](https://kotlinlang.org/docs/reference/operator-overloading.html#comparison)
4
4
 
5
5
  だから、キャストするかなにか対応する必要がある。
6
6
 
@@ -10,6 +10,7 @@
10
10
  println((items["age"] as Comparable<Int>) < 9)
11
11
  println((items["age"] as Int) < 9)
12
12
  ```
13
+
13
14
  Javaで書けばわかりますかね。
14
15
 
15
16
  ```