タグ

enumに関するyukimori_726のブックマーク (5)

  • セミコロンレスJava 8の新機能「enumにメソッド生やす」 #semicolonlessjava — 裏紙

    レガシーセミコロンレスJavaにおけるenumの制限 Java言語ではenumにメソッドを生やす事ができます。 //これはセミコロンを付けても良いありふれた普通のJavaコード public enum Hoge { FOO, BAR, BAZ; public void println() { System.out.println(name()); } } しかしメソッドを定義するためには一番最後に宣言した列挙定数(上記の例でいうと BAZ )の後ろにセミコロンをつける必要があります。 これは回避できない制約なのでセミコロンレスJavaではenumにメソッドは生やせませんでした。 セミコロンレスJava 8におけるenumの新機能 しかし、Java 8でインターフェースにデフォルトメソッドを持てるようになり、 その副次効果でセミコロンレスJava 8ではenumにメソッドを生やす事が出来るよ

  • 第20回 #potatotips でJavaのenumについて語ってきた - Augmented Usamimi

    表題のとおりです. potatotips #20でLTした 前回(第19回,発表資料)は当日繰り上がり当選,その前(第17回,発表資料)は主催者枠での登壇だったので,正規当選での発表は実は初めてだった. speakerdeck.com Effective Java 第2版 (The Java Series)とKeithYokoma氏のQiita記事に自分が最近書いたコードからの知見を加えたもだが, スライドのデザインに気を取られすぎて内容がアレになってしまった. あと,最近のAndroid界隈の流行に乗ってスライドを英語で作ったらとてもつらいことになった. トークから漏れたenumの話 スライド後半でenumで実装するイベントハンドラを紹介している. これはスライドに書いたとおりだけど,大きなメリットとしてはやはりテスタビリティの向上と責務の分散があると思っている. テスタビリティについて

    第20回 #potatotips でJavaのenumについて語ってきた - Augmented Usamimi
  • TimeUnitという物体 - 日々常々

    小ネタ。 java.util.concurrent.TimeUnit というクラスはご存知だろうか。ご存知?なら回れ右してください。お疲れさまでした。またの機会によろしくお願いします。 ... さて、読み進めているならばご存知でないはずなので、まずJavadocのリンクをば。 TimeUnit (Java Platform SE 8) J2SE 5.0 からいらっしゃるので、別段目新しくないどころか古参とも言えるクラスです。 クラスというかenumです。定義されている列挙はナノ秒、マイクロ秒、ミリ秒、秒、分、時、日の7種類。名前の通りTimeのUnitです。できることはその時間に応じた何かしら。 TimeUnitを使えば、3日が何時間かとかすぐに出せます。忘れがちな「1日が何秒か?」とかにも答えてくれます。 long 三日の時間数 = TimeUnit.DAYS.toHours(3); l

    TimeUnitという物体 - 日々常々
  • enum-j.html#java_enum

    C言語によるプログラミングでは、列挙型(enum型)はたいへん良く使われます。 オブジェクト指向言語でも、それは変わらないようです。C言語を拡張したC++言語ではもちろん、Java言語でも、J2SE 5.0になってから列挙型が導入されたほどです。 その一方で、オブジェクト指向言語で列挙型を使う弊害も、繰り返し指摘されてきました。列挙型とswitch文を使ったソースコードは、ポリモーフィズムを使って書き直すべき典型的な悪い例として、しばしば取り上げられて来ました。 しかし、列挙型を使ったプログラムのすべてが、ポリモーフィズムを使って書き直すべきだとは限りません。継承によるポリモーフィズムは、オブジェクト指向の特徴の1つですが、サブクラスを作るべきではないケースもあるのです。そのような場合に、列挙型を使ったコードを書くことは、悪いことではありません。 ここでは、オブジェクト指向言語における列挙

  • Java列挙型メモ(Hishidama's Java enum Memo)

    列挙型(enum)は、JDK1.5で導入された、一連の値を定義する文法。[2006-07-26] 一番単純な定義方法はC言語の列挙型に似ているが、C言語と違って実態はクラス(と、不変オブジェクト)。 enumはenumerate(イニュームレイトあるいはイヌームレイト)の略なので、発音としては「イニューム」が正しそうだが、自分は「イナム」「エナム」と呼んでいる。 最も単純な定義方法 enum 列挙名 { 列挙子, 列挙子, … } 列挙名は、クラス名(やインターフェース名など)と同様。 (したがって、publicの付いたenumの列挙名は、ソースファイル名と同じでなければならない。また、publicの付いたenumはソースファイル内に1つしか定義できない) 列挙子(enum定数)は、フィールド名の定数(クラス内のstatic final変数)と同様。 (したがって、アルファベット大文字を使

  • 1