2011-05-30 27 views
1

我想通过使用其值中的一个作为输入来设置枚举类型:字符串值来设置一个枚举

这是我正在使用的代码,

package models; 

    import models.crudsiena.SienaSupport; 
    import siena.*; 

    public class Item extends SienaSupport { 

     @Id 
     public Long id; 


      public static enum Type{ 
       A, 
       B 
      }; 

      public Type itemType; 

      public Item(String itemType) { 
       this.itemType = Type.valueOf(itemType); 
      } 
} 

当尝试使用new Item("A")返回我NullPointerException occured : Name is null

+3

我不能重现此。请显示一个简短的*完整的*程序来说明问题。正如Jon所说, – 2011-05-30 21:57:51

+0

,问题必须在别的地方,你发布的代码应该很好。 – x4u 2011-05-30 22:00:45

+0

嗨,感谢您的时间,我将在此加入更多的歉意。这是堆栈跟踪:http://pastebin.com/xBjBm4pM – Roch 2011-05-30 22:04:50

回答

1

试试这个:

public Item(String itemType) { 
    if (itemType == null) { 
     throw new IllegalArgumentException("null itemType"); 
    } 
    this.itemType = Type.valueOf(itemType); 
} 
+0

我刚刚尝试过,它返回了null itemType异常,所以我的输入必须有错误 – Roch 2011-05-30 22:09:35

+0

这就是愚蠢对你的时间感到抱歉 – Roch 2011-05-30 22:11:22