タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

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

  • 文字列でswitchするときはif-else switchイデオムを使うほうが安全 - きしだのHatena

    Java SE 7から、switch構文で文字列が使えるようになりました。 public void hoge(String s){ switch(s){ case "a": System.out.println("AA"); break; case "b": System.out.println("BB"); break; default: System.out.println("Other"); } } ところが、残念なことに、sがnullの場合はdefaultには飛ばず、ぬるぽが発生します。 そこで、null判定は事前にif文で行うことになるので、次のようなif-else switchイデオムを使うと便利です。 if(s == null){ System.out.println("Null!"); }else switch(s){ case "a": System.out.printl

    文字列でswitchするときはif-else switchイデオムを使うほうが安全 - きしだのHatena
  • 列挙型を使った処理を共通化する (Java) - とあるソフトウェア開発者のブログ

    Javaで複数の列挙型(enum)に対して同じような処理を書く場合に、どのように共通化するかを考えました。この記事では、列挙型で共通のインターフェースを実装しても対処できないような場合について扱います。例えば、values()のようなstaticメソッドが関わる場合です。対象バージョンはJava SE 6です。(たぶん5でも動きます。) 2010/08/13追記 記事のタイトルを「列挙型を使った処理の共通化」から「列挙型を使った処理を共通化する」に変更しました。(前者だと、「『列挙型を使った処理』の共通化」と「列挙型を使った『処理の共通化』」のように2種類の解釈ができて紛らわしいため。) 共通化されていない場合 はじめに共通化されていない場合のコードを示します。main()を呼び出すと、2種類の列挙型(Size、Color)に対して、クラス名とメンバ一覧を出力します。printSizeVa

    列挙型を使った処理を共通化する (Java) - とあるソフトウェア開発者のブログ
  • J2SE 5.0 Tiger 虎の穴 Typesafe Enum

    Java で C/C++ の enum 型がないと嘆いている方は多いのではないでしょうか。 単に enum を導入するのは私は反対でした。というのも、enum 型には潜在的な問題があると思うからです。enum 型は結局 int 型と同じに扱われてしまうので、範囲のチェックなどやってくれません。たとえば typedef enum {ALPHA, BETA, GAMMA, DELTA} alpha; alpha a = ALPHA; // OK alpha b = 1; // OK だけども、BETA のことだと誰が分かる alhpa g = 7; // OK だけども、当は定義していない

  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • 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