Twitter4J,关于可能字段的文档

Twitter4J,关于可能字段的文档,twitter,twitter4j,Twitter,Twitter4j,我开始使用Twitter4J,我想弄清楚每种方法的作用。 我正在实现UserStreamListener,它有很多JavaDoc没有的方法,如下所示: public void onException(Exception ex) { public void onBlock(User arg0, User arg1) public void onDeletionNotice(long arg0, long arg1) public void onDirectMessage(DirectMessage

我开始使用Twitter4J,我想弄清楚每种方法的作用。 我正在实现UserStreamListener,它有很多JavaDoc没有的方法,如下所示:

public void onException(Exception ex) {
public void onBlock(User arg0, User arg1)
public void onDeletionNotice(long arg0, long arg1)
public void onDirectMessage(DirectMessage arg0)
...
所以,我不知道他们是什么时候被执行的,这些参数是什么意思。我下载了Twitter4J的代码,我看到了一个类,在这个类中,您可以看到库是如何生成事件的,但是当我尝试将这些信息与Twitter链接时,我找不到更多信息

我找到了这个网站,但不是这个信息

public final class JSONObjectType {
    public enum Type {
        SENDER,
        STATUS,
        DIRECT_MESSAGE,
        DELETE,
        LIMIT,
        STALL_WARNING,
        SCRUB_GEO,
        FRIENDS,
        FAVORITE,
        UNFAVORITE,
        FOLLOW,
        UNFOLLOW,
        USER_LIST_MEMBER_ADDED,
        USER_LIST_MEMBER_DELETED,
        USER_LIST_SUBSCRIBED,
        USER_LIST_UNSUBSCRIBED,
        USER_LIST_CREATED,
        USER_LIST_UPDATED,
        USER_LIST_DESTROYED,
        USER_UPDATE,
        BLOCK,
        UNBLOCK,
        DISCONNECTION,
        UNKNOWN
    }


    private static final Logger logger = Logger.getLogger(JSONObjectType.class);

    /**
     * Determine the respective object type for a given JSONObject.  This
     * method inspects the object to figure out what type of object it
     * represents.  This is useful when processing JSON events of mixed type
     * from a stream, in which case you may need to know what type of object
     * to construct, or how to handle the event properly.
     *
     * @param json the JSONObject whose type should be determined
     * @return the determined JSONObjectType, or null if not recognized
     */
    public static Type determine(JSONObject json) {
        // This code originally lived in AbstractStreamImplementation.
        // I've moved it in here to expose it as a public encapsulation of
        // the object type determination logic.
        if (!json.isNull("sender")) {
            return Type.SENDER;
        } else if (!json.isNull("text")) {
            return Type.STATUS;
        } else if (!json.isNull("direct_message")) {
            return Type.DIRECT_MESSAGE;
        } else if (!json.isNull("delete")) {
            return Type.DELETE;
        } else if (!json.isNull("limit")) {
            return Type.LIMIT;
        } else if (!json.isNull("warning")) {
            return Type.STALL_WARNING;
        } else if (!json.isNull("scrub_geo")) {
            return Type.SCRUB_GEO;
        } else if (!json.isNull("friends")) {
            return Type.FRIENDS;
        } else if (!json.isNull("event")) {
            String event;
            try {
                event = json.getString("event");
                if ("favorite".equals(event)) {
                    return Type.FAVORITE;
                } else if ("unfavorite".equals(event)) {
                    return Type.UNFAVORITE;
                } else if ("follow".equals(event)) {
                    return Type.FOLLOW;
                } else if ("unfollow".equals(event)) {
                    return Type.UNFOLLOW;
                } else if (event.startsWith("list")) {
                    if ("list_member_added".equals(event)) {
                        return Type.USER_LIST_MEMBER_ADDED;
                    } else if ("list_member_removed".equals(event)) {
                        return Type.USER_LIST_MEMBER_DELETED;
                    } else if ("list_user_subscribed".equals(event)) {
                        return Type.USER_LIST_SUBSCRIBED;
                    } else if ("list_user_unsubscribed".equals(event)) {
                        return Type.USER_LIST_UNSUBSCRIBED;
                    } else if ("list_created".equals(event)) {
                        return Type.USER_LIST_CREATED;
                    } else if ("list_updated".equals(event)) {
                        return Type.USER_LIST_UPDATED;
                    } else if ("list_destroyed".equals(event)) {
                        return Type.USER_LIST_DESTROYED;
                    }
                } else if ("user_update".equals(event)) {
                    return Type.USER_UPDATE;
                } else if ("block".equals(event)) {
                    return Type.BLOCK;
                } else if ("unblock".equals(event)) {
                    return Type.UNBLOCK;
                }
            } catch (JSONException jsone) {
                try {
                    logger.warn("Failed to get event element: ", json.toString(2));
                } catch (JSONException ignore) {
                }
            }
        } else if (!json.isNull("disconnect")) {
            return Type.DISCONNECTION;
        }
        return Type.UNKNOWN;
    }
}

例如,如果JSON是“event”和“block”,那么将执行onBlock方法。但是,Tweet中所有可能字段的信息在哪里

您可以在Twitter的文档中找到所需的信息,具体来说,请查看描述消息格式的部分:

{
“目标”:目标用户,
“源”:源用户,
“事件”:“事件名称”,
“目标对象”:目标对象,
“创建时间”:“2010年9月4日星期六16:10:54+0000”
}
此外,此文档将有助于了解方法的参数名称,例如
onBlock
方法:

onBlock(User source, User blockedUser)