Twitter4j Streamでエラー
MLに書いてあったやり方(typoなど修正済み)でstreamを試そうとしたらエラーが
import twitter4j.Status; import twitter4j.StatusListener; import twitter4j.TwitterException; import twitter4j.TwitterStream; public class TestShadow { public static void main(String[] args) throws TwitterException { TwitterStream streamTwitter = new TwitterStream("id", "user", new MyStatusListener()); streamTwitter.spritzer(); } class MyStatusListener implements StatusListener { public void onStatus(Status status) { System.out.println(status.getText()); } public void onException(Exception ex) { } } }
Exception in thread "main" java.lang.Error: Unresolved compilation problem: アクセス可能な型 TestShadow のエンクロージング・インスタンスがありません。型 TestShadow のエンクロージング・インスタンスで割り振りを限定する必要があります (例えば x.new A() で、x は TestShadow のインスタンス)。 at test.TestShadow.main(TestShadow.java:10)
エンクロージング・インスタンスとやらがわからないので調べてみる。
こんな感じにMyStatusListenerをkruasuno外に出したらエラー消えた
import twitter4j.Status; import twitter4j.StatusListener; import twitter4j.TwitterException; import twitter4j.TwitterStream; public class TestShadow { public static void main(String[] args) throws TwitterException { TwitterStream streamTwitter = new TwitterStream("id", "user", new MyStatusListener()); streamTwitter.spritzer(); } } class MyStatusListener implements StatusListener { public void onStatus(Status status) { System.out.println(status.getText()); } public void onException(Exception ex) { } }