Blog
Skip to end of metadata
Go to start of metadata

Érdekes "hibába" futottam bele minap, mégpedig egy nem várt NullPointerException keletkezett egy switch utasításban, amely kissé váratlanul ért... Tekintsük meg az alábbi rövid ki programot:

SwitchEnumTest.java
public class SwitchEnumTest
{
  public static void main(String[] args)
  {
    Enum testEnum = null;

    switch (testEnum)
    {
      case ONE: System.out.println("ONE"); break;
      case TWO: System.out.println("TWO"); break;
      default: System.out.println("other");
    }
  }

  public enum Enum
  {
    ONE,
    TWO,
  }
}

Valamilyen oknál fogva elkövettem azt a hibát, hogy a fenti esetben a default ágon vártam a program továbbfutását, ám ehelyett az alábbi hibaüzenet örvendeztetett meg:

Exception in thread "main" java.lang.NullPointerException
        at SwitchEnumTest.main(SwitchEnumTest.java:7)

A hetedik sor a switch(testEnum), szóval ha enum osztály konkrét példánya szerint szeretnék switch utasítással elágaztatni a programunkat, akkor először vizsgáljunk null értékre.

Szerintetek hogy lehetne ezt elegánsan -- vagyis a switch köré írt if-else nélkül -- megoldani ezt a problémát? :)

      
      
Page viewed times
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))