使用Java和对象从向量获取数据的问题

时间:2017-03-06 05:35:00

标签: java twitter4j

我目前正在玩Java,JForms和Twitter4j库。尝试创建一种使用tweetID填充矢量的方法,以便对它们执行操作(转推,收藏,回复等)。我有两个问题:

一个。无法添加到矢量,或

B中。无法从中读取。

基于我从记录器输出中看到的内容,我很肯定我没有正确添加数组。有人可以和我一起看看发生了什么事吗?

main.java(使用推文ID添加到矢量的代码。)

    private void btn_refreshTimelineActionPerformed(java.awt.event.ActionEvent evt) {                                                    
    TwitterUtilities tu = new TwitterUtilities();
    Twitter twitter = tu.getConnect();

    // Gets tweet information.
    List<Status> statuses = null;
    try {
        statuses = twitter.getHomeTimeline();
    } catch (TwitterException ex) {
        Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);
    }
    // Init table.
    DefaultTableModel model = (DefaultTableModel) tbl_tweets.getModel();
    // Clear table.
    model.setRowCount(0);
    // Populate table.
    for (Status status : statuses)
    {
        tu.setTargetID(status.getId());
        Vector row = new Vector();
        row.add(status.getUser().getName());
        row.add(status.getText());
        model.addRow(row);
    }
}

main.java(调用getTargetTweetID的部分。)

    private void btn_favoriteActionPerformed(java.awt.event.ActionEvent evt) {                                             
    TwitterUtilities tu = new TwitterUtilities();
    Twitter twitter = tu.getConnect();

    int targetIndex = tbl_tweets.getSelectedRow();
    long tweetID = tu.getTargetTweetID(targetIndex);
    try {
        twitter.createFavorite(tweetID);
    } catch (TwitterException ex) {
        Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);
    }
}

TwitterUtilities.java

public class TwitterUtilities {
public Vector tweetIDVector;

// Other stuff... but here's the important stuff.

    public void setTargetID(long targetStatus)
{
    this.tweetIDVector.addElement(targetStatus);
}

public long getTargetTweetID(int targetIndex)
{
    // Get tweet ID for the selected tweet.
    Object targetTweetID = this.tweetIDVector.get(targetIndex);

    return (long) targetTweetID;
}
}

我在运行时获得的错误消息:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 1

非常感谢任何帮助!

编辑:在处理完建议后,我现在已将以下代码更新为此新设置:

TwitterUtilities.java

public class TwitterUtilities {
public Vector tweetIDVector = new Vector<>();

// More fun stuff...

    public void setTargetID(long targetStatus)
{
    this.tweetIDVector.addElement(targetStatus);
    for (int i = 0; i <= tweetIDVector.size(); i++)
    {
        System.out.println(tweetIDVector.get(i));
    }
}

现在运行时发生以下情况:

838641565769871360
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 1

编辑2:将Vector更改为List。加载推文ID正在运行。还将for循环中的&lt; =更改为&lt;。现在它按照预期的方式加载所有内容。仍然在getTargetTweetID中从List获取数据时遇到问题。

0 个答案:

没有答案