JavaとScalaの文法対応

  • 投稿日:
  • 更新日:2015/03/06
  • by
  • カテゴリ:

Scalaを始めたばかりでJavaで書いてたことをどう書くのかよく混乱するので、メモ。

項目JavaScala
クラスオブジェクトFoo.classclassOf[Foo]
例外ハンドリングtry { .. }
catch (Ex1 e) { .. }
catch (Ex2 e) { .. }
try { .. } catch {
case e1: Ex1 => ..
case e2: Ex2 => ..
}
リスト/配列作成list = new ArrayList() list = List[T]()
array = Array[T]()
リスト追加N/Alist = list ::: List(x)
配列追加list.add(x)array ++ List(x)
マップ作成map = new HashMap()map = Map.empty
マップ追加map.put(x, y)map += x -> y
シングルトンstaticでメンバに保持object { ... }
イテレーションfor (i : list) ...list foreach (i=> { ... })
キャスト(Foo) barbar.asInstanceof[Foo]
型判定foo instanceof Foofoo.isInstanceof[Foo]
内部型Foo.BarFoo#Bar
シングルトンの型N/Aobj.type
型パラメータ制約class Foo<T extends Bar>class Foo[T <: Bar]
(逆もclass Foo[T >: Bar]で可能)
オブジェクトObjectAny (primitiveを含む場合)
AnyRef

なんかまだまだあった気がするけど、気付いたら追加しよう。 なお、必ずしもsemanticalに同一ではないので注意してください。

こちらもよく読まれています