-5

これが可能であると信じる理由はまったくありませんが、今は貢献できる立場にあることを考えると(コンピューターサイエンス専攻の4年目、ソフトウェアエンジニアリングの仕事をしている)、再び質問する能力を回復しようとしています。私は高校の 3 年生で、Java を本当に理解する前に Minecraft のモッディングをいじっていました。

これは、最初は機能していなかったコードであり、この質問を課すことを決定するきっかけとなりました。

/**
 *
 */
package net.halalaboos.huzuni.console.commands;

import net.halalaboos.huzuni.Huzuni;
import net.halalaboos.huzuni.client.notifications.Notification;
import net.halalaboos.huzuni.console.Command;
import net.halalaboos.lib.io.FileUtils;
import net.minecraft.src.GuiPlayerInfo;
import net.minecraft.src.StringUtils;
import twitter4j.*;
import twitter4j.conf.ConfigurationBuilder;
import twitter4j.TwitterException;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class TwitterAlerts implements Command {
    public Status tweet;
    public String tweetalert;
    public ConfigurationBuilder cb = new ConfigurationBuilder();
    TwitterFactory tf = new TwitterFactory(cb.build());
    Twitter twitter = tf.getInstance();
    TwitterAlerts object = new TwitterAlerts();
    TwitterAlerts()
    {
        setkey();
        checkstatus();
    }
    public void setkey()
    {
        setkey();
        cb.setDebugEnabled(true);
        cb.setOAuthConsumerKey("5c8ZcMgQihdS5kzGun9iSw");
        cb.setOAuthConsumerSecret("aRUUbQnDu5yAjmdI23LdjRu6vDtPWaKhc6dFVklne0");
    }
    List<String> twitters = new ArrayList<String>();
    List<String> pasttweets = new ArrayList<String>();
    /**
     * @see net.halalaboos.huzuni.console.Command#getAliases()
     */
    @Override
    public String[] getAliases() {
        return new String[] {"twitteralerts", "tfollow"};
    }

    /**
     * @see net.halalaboos.huzuni.console.Command#getHelp()
     */
    @Override
    public String[] getHelp() {
        return new String[] {"Do /twitteralerts <name of tweeter> to be alerted of new tweets!"};
    }

    /**
     * @see net.halalaboos.huzuni.console.Command#getDescription()
     */
    @Override
    public String getDescription() {
        return "In game alerts of new tweets on followed accounts.";
    }

    /**
     * @see net.halalaboos.huzuni.console.Command#run(java.lang.String, java.lang.String[])
     */
    @Override
    public void run(String input, String[] args) {
        twitters.add(input);

    }
    public void checkstatus()
    {
        while(twitters != null)
        {
            try {
                for(int i=0;i<twitters.size();i++)
                {
                    tweet = twitter.getUserTimeline(twitters.get(i)).get(0);
                    if (pasttweets.contains(tweet.getText()))
                    {

                    }
                    else
                    {
                        Huzuni.notificationManager.add(new Notification("Tweet Retrieved", tweet.getText()));
                        pasttweets.add(tweet.getText());
                    }
                }


            } catch (TwitterException e) {
                e.printStackTrace();
            }

        }
    }
}
4

2 に答える 2

3

あなたのクラスにはフィールドがあります

TwitterAlerts object = new TwitterAlerts();

このフィールドを初期化すると、新しいオブジェクトが作成され、新しいオブジェクトが作成されます。

すべてTwitterAlertsのオブジェクトには、TwitterAlertsを持つオブジェクトがありTwitterAlertsTwitterAlerts... わかりますか?

そのフィールドを取り除きます。あなたもそれを使用していません。

于 2013-10-11T01:34:26.917 に答える
0

これらの行を見てください

TwitterAlerts object = new TwitterAlerts();
TwitterAlerts()
{
    setkey();
    checkstatus();
}

TwitterAlerts のインスタンスを作成すると、別のインスタンスが作成されます。そして、別のインスタンスが作成されます....だから、その理由はわかりますか?

于 2013-10-11T01:53:18.850 に答える