2016年2月23日

日記

ScalaJavaEnum みたいなことをするのに、sealed abstract class と case object を使う手法があるけど、この方法だとそのままでは定義された値全てを取得することができない。 全定数をハードコーディングするのもなんなので(Java の)リフレクション使ってできないかなぁとあれこれためしてみた。 コンパニオン・オブジェクト内に定義された (casa) object は内部クラスとして取得できるのかと思ったけどそれらしいものは見当たらず。 フィールドとしてもない。 と思ってたら、定義したコンパニオン・オブジェクト内ではなく、付随している(されている?)クラスの方の内部クラスとして定義されているようで。 それが分かれば後は通常のリフレクション操作であれこれイジるには問題なし。

Android とか Scala.js とかってちょっとは Java のリフレクション使えるんだっけな? クラスオブジェクトの取得くらいはできる? メインコードからなるべくリフレクションを排除しようとしてるのだが、全て消そうとすると重複した情報をコーディングしないといけないので(既に結構力任せのコードが結構あるが)躊躇中。 そもそも書き換えるの面倒だ・・・

そう言えば、最近気づいたのだが、IntelliJ IDEA で(たぶん主要 IDE なら同じことできるだろうけど)置換に正規表現が使えるんだね。 これ、場合によってはかなり便利。 正規表現を入力するとリアタイで検索してくれるので正規表現が目的の文字列にあってるかどうか確かめながら書けるし、() でグループを作って $1 とかで参照したりもできる有り難さ。 しかも置換後の文字列も(参照したグループを解決して)表示してくれる。 便利やわ-。

Scalaスケーラブルプログラミング第2版

Scalaスケーラブルプログラミング第2版

Scalaパズル 36の罠から学ぶベストプラクティス

Scalaパズル 36の罠から学ぶベストプラクティス


NHK 世界のニュース ザッピング(翌日)

  • 中国中央テレビ春節帰省ラッシュ長距離バスで違反
  • 【韓国 KBS】 “報復運転”相次ぎ問題に
  • 【タイ CH9】 居眠りの男の子2年後の姿は
  • 【ロシア TV】 人口雪崩で死者
  • 【インド NDTV】 デモ隊が水路破壊 大規模な断水
  • 【スペイン TVE】 男女の給与格差 EU を上回る

ツイート (ツイート数 28)