2016-09-28 13 views
1

テストランナークラスを実行すると、期待される出力がViews = 1047になるはずです。代わりに、ビュー= 0、つまりヌル値が返されます。私は間違って何をしていますか?Beanがnullを返す値

これは

public class TestRunner { 

public static void main(String[] args) { 
    // TODO Auto-generated method stub 


    JsonRestApi abc = new JsonRestApi(); 

    SocialBean bean = new SocialBean(); 

    System.out.println("Views="+bean.getViews()); 
} 

}

これは私がこれは豆

public class JsonRestApi { 

public JsonRestApi() { 

    try { 

     String Response = "{\"Youtube Data\":\"Views\":\"1047\"}"; 

     JSONParser parser = new JSONParser(); 

     try { 

      Object obj = parser.parse(Response); 

      JSONObject jsonObject = (JSONObject) obj; 
      JSONObject jsonObject3 = (JSONObject)jsonObject.get("Youtube Data"); 

      Long yviews = new Long((String)jsonObject3.get("Views")); 

      SocialBean bean = new SocialBean(); 

      bean.setViews(yviews); 

    } 
    } 

} }

に値を注入していた場所からRestApiクラスである私のメインクラスです私の豆のクラス

public class SocialBean { 
private long views; 
public long getViews() { 
     return views; 
    } 
    public void setViews(long views) { 
     this.views = views; 
    } 
+0

mainメソッドの 'bean'に' abc'が影響するのはなぜですか?これは、独自のコンストラクターで作成したものに影響を与え、すぐに範囲外になります。 – JonK

+1

あなたは 'SocialBean'のインスタンスを2つ持っています。一つは' TestRunner'で作成し、もう一つは '' JsonRestApi'で作成します。このコードではSpringをまったく使用しておらず、依存関係の注入も行っていません。 (あなたは "あなたは"ビーンに値を注入していますが、あなたは何も注入していません ")。 – Jesper

+0

Test RunnerクラスのJsonRestApiコンストラクタの中で設定されたbeanの値にアクセスする方法はありますか? –

答えて

1

SocialBeanはJsonRestApiコンストラクタのローカルです。それを私的なフィールドにします。 FYI

System.out.println("Views="+abc.getSocialBean().getViews()); 

:あなたの主な方法で

private SocialBean bean = new SocialBean(); 
public JsonRestApi() { 

try { 

    String Response = "{\"Youtube Data\":\"Views\":\"1047\"}"; 

    JSONParser parser = new JSONParser(); 

    try { 

     Object obj = parser.parse(Response); 

     JSONObject jsonObject = (JSONObject) obj; 
     JSONObject jsonObject3 = (JSONObject)jsonObject.get("Youtube Data"); 

     Long yviews = new Long((String)jsonObject3.get("Views")); 

     bean.setViews(yviews); 

} 
} 

public SocialBean getSocialBean(){ 
    return bean; 
} 

あなたは、このコードでのSpring Beanを使用していません。

+0

まだビューはnull値を返しています –

+0

あなたのjsonは有効ではないと思います。 –

+0

私はあなたが正しいと思いますJsonを修正しました –

関連する問題