我将使用Twitter4j来访问用户流。我遇到的问题是,我无法实现接口并将其用作监听器。
以下是我的完整代码:
这是我得到的错误信息。
为什么会这样?这些接口并不是私有的,它们只是简单的接口。发生了什么事情?
以下是我的完整代码:
(ns dameon.temporal-lobe.twitter
(:import [twitter4j TwitterStreamFactory StatusListener StreamListener]
[twitter4j.conf ConfigurationBuilder])
(:require [clojure.edn :as edn :only [read-string]]))
;;The class that handles the stream data
(def status-listener
(proxy [StatusListener] []
(onStatus [status]
(println status))
(onDeletionNotice [status-deletion-notice])
(onTrackLimitationNotice [number-of-limited-statuses])
(onStallWarning [warning])
(onException [ex]
(.printStackTrace ex))
(onScrubGeo [user-id up-to-status-id])))
(class status-listener)
;;Connect to the stream and add listener
(def creds (get (edn/read-string (slurp "creds.edn")) :twitter))
(-> (ConfigurationBuilder.)
(.setDebugEnabled true)
(.setOAuthConsumerKey (creds :consumer-key))
(.setOAuthConsumerSecret (creds :consumer-secret))
(.setOAuthAccessToken (creds :access-token))
(.setOAuthAccessTokenSecret (creds :access-secret))
(.build)
(TwitterStreamFactory.)
(.getInstance)
(.addListener status-listener)
(.sample))
这是我得到的错误信息。
Unhandled java.lang.IllegalAccessError
tried to access class twitter4j.StreamListener from class
dameon.temporal_lobe.twitter$eval11235
为什么会这样?这些接口并不是私有的,它们只是简单的接口。发生了什么事情?