2016-06-25 3 views
1

のセッターでの独自ロジックこのようなヌル例外が返されます列挙型のサポートとレルムオブジェクトクラス

*java.lang.NullPointerException: name == null 
at java.lang.Enum.valueOf(Enum.java:189) 
at com.localwizard.realm_db.SellerProducts$ProductType.valueOf(SellerProducts.java:331) 
at com.localwizard.realm_db.SellerProducts.getEnum(SellerProducts.java:348)* 

私はどこが私が間違っているのか分かりません。

+0

'setEnum()'を呼び出す前に 'getEnum()'を呼び出しています。あなたのロジックのどこかでのミスのように思えますが、意図した場合には 'return(enumValue!= null)? ProductType.valueOf(enumValue):null' –

答えて

0

Ashish、私はあなたがProductType列挙型を設定しておらず、それを取得しようとしていて、あなたが例外を知りたいと思います。ここに私が試してみましたが、それは正常に動作しているコードがある -

public class OtherFragment { 
    public static void main(String[] aa) 
    { 
     SellerProducts sp = new SellerProducts(); 
     sp.setQuantity("10"); // setting the quantity 
     System.out.println(sp.getEnum()); // ACTIVE is set as Enum 
     System.out.println(sp.getQuantity()); // 10 
     System.out.println(sp.getEnum() == ProductType.ACTIVE); // true 
     sp.setEnum(ProductType.IN_ACTIVE); // Now IN_ACTIVE is set 
     System.out.println(sp.getEnum() == ProductType.ACTIVE); // false 
    } 
} 

これがない場合には、あなたが何をしたい、あなたは数量を設定するためのものか、コードのあなたの平和を追加し、列挙型の値を取得しようとしてください。 。

それは、あなたの質問に答える場合、答えを受け入れてください。

+0

私はsetQuantity自体のrealmObjectでsetEnumを呼び出しています。これは他のフラグメントクラスのgetEnumクラスの値をthis-'sp.getEnum == ProductType.Active'のようにチェックしています。列挙型realmobjectクラス自体を設定していません。つまり、realmオブジェクトのセッターでカスタムロジックサポートをしていますか?それは私が間違っていると思います。 –

+0

また 'quantity_'は' setQuantity'で割り当てられていません。デフォルト値を与えています。私は間違っていますか? –

+0

私は自分の答えを更新しました。私は数量を設定し、setQuantity()メソッドで設定されている列挙型を取得することができます。後で私は列挙型を変更し、ProductTypeと比較することもできました。 – RCS