Java 创建新对象

Java 创建新对象,java,swing,object,twitter,twitter4j,Java,Swing,Object,Twitter,Twitter4j,目前,我的程序有一个Jpanel,有大约15种不同的输入。这些输入被创建为一个名为“searchInput”的长字符串 然后将“searchInput”放入一个名为的查询中,该查询一次一个地获取关于tweet结果的元数据,例如createdAt、user和text。这些结果将打印到名为tweetsResult的文本区域 createdAt、user和text只是每条tweet背后的一些元数据,更多的是favoriteCount和retweetCount 由于Twitter使用API可以向您发送最

目前,我的程序有一个Jpanel,有大约15种不同的输入。这些输入被创建为一个名为“searchInput”的长字符串

然后将“searchInput”放入一个名为的查询中,该查询一次一个地获取关于tweet结果的元数据,例如createdAt、user和text。这些结果将打印到名为tweetsResult的文本区域

createdAt、user和text只是每条tweet背后的一些元数据,更多的是favoriteCount和retweetCount

由于Twitter使用API可以向您发送最多的tweet,我觉得最好创建一个使用searchInput的新类,然后将所需数量的tweet和所有元数据放入一个对象中。然后在主类中,我只调用带有我想要的特定元数据的结果

这样做对吗?如果是这样的话,我应该如何创建这个新对象,大概是使用getter和setter

我希望你明白这一点,非常感谢你的帮助

    List<Status> tweets = new ArrayList<Status>();

    //Standard Twitter and Twitter4j authentication
    ConfigurationBuilder builder = new ConfigurationBuilder();
    builder.setOAuthConsumerKey(consumerKey);
    builder.setOAuthConsumerSecret(consumerSecret);
    Configuration configuration = builder.build();
    TwitterFactory twitterFactory = new TwitterFactory(configuration);
    Twitter twitter = twitterFactory.getInstance();
    twitter.setOAuthAccessToken(new AccessToken(accessToken, accessTokenSecret));




    //The query is split up into 5 sections
    //All the text boxes are read in the seperate methods
    String searchWordInput = getWordSearchQuery();
    String searchPeopleInput = getPeopleSearchQuery();
    String filtersSearchInput = getFiltersSearchQuery();
    String dateAndLocationSearchInput = getDateAndLocationSearchQuery();
    String radiusAndLocationSearchInput = getRadiusAndLocationSearchQuery();
    String searchInput = searchWordInput + searchPeopleInput + filtersSearchInput + dateAndLocationSearchInput + radiusAndLocationSearchInput;
    //One big search String called "searchInput" is taken to be sent to Twitter
    //Increases maximum amount of tweets in one search
    int wantedTweets = 100; //CHANGE THIS FOR DIFFERENT AMOUNT OF TWEETS
    long lastSearchID = Long.MAX_VALUE;
    int remainingTweets = wantedTweets;
    Query query = new Query(searchInput);
    tweetsResultInput.append(searchInput);
    try {
        while (remainingTweets > 0) {
            remainingTweets = wantedTweets - tweets.size();
            if (remainingTweets > 100) {
                query.count(100);
            } else {
                query.count(remainingTweets);
            }
            QueryResult result = twitter.search(query);
            tweets.addAll(result.getTweets());
            Status s = tweets.get(tweets.size() - 1);
            lastSearchID = s.getId();
            query.setMaxId(lastSearchID);
            remainingTweets = wantedTweets - tweets.size();
        }
        //Increases maximum amount of tweets in ones search


        tweetsResult.append(searchInput);
        tweetsResult.append("\n");
        //For the query tweets, using "searchInput", get every tweet in the format; when Tweet was sent, who it was sent by, and the Tweets text and write to tweetsResults
        for (Status tweet : tweets) {
            tweetsResult.append(tweet.getCreatedAt() + ":\t@" + tweet.getUser().getScreenName() + " - " + tweet.getText());
            tweetsResult.append("\n");

        }
    } catch (TwitterException te) {
        System.out.println("Failed to search tweets: " + te.getMessage());
        System.exit(-1);
    }
List tweets=new ArrayList();
//标准Twitter和Twitter4j身份验证
ConfigurationBuilder=新的ConfigurationBuilder();
builder.setOAuthConsumerKey(consumerKey);
builder.setOAuthConsumerCret(ConsumerCret);
配置=builder.build();
TwitterFactory TwitterFactory=新的TwitterFactory(配置);
Twitter=twitterFactory.getInstance();
setOAuthAccessToken(新的AccessToken(AccessToken,accessTokenSecret));
//查询分为5个部分
//所有文本框均以单独的方法读取
字符串searchWordInput=getWordSearchQuery();
字符串searchPeopleInput=getPeopleSearchQuery();
字符串filtersSearchInput=getFiltersSearchQuery();
字符串dateAndLocationSearchInput=getDateAndLocationSearchQuery();
字符串radiusAndLocationSearchInput=getRadiusAndLocationSearchQuery();
字符串searchInput=searchWordInput+searchPeopleInput+filtersSearchInput+dateAndLocationSearchInput+radiusAndLocationSearchInput;
//一个名为“searchInput”的大搜索字符串被发送到Twitter
//增加一次搜索中推文的最大数量
int wantedTweets=100//针对不同数量的推文更改此选项
long lastSearchID=long.MAX_值;
int remainingTweets=想要的tweets;
查询=新查询(searchInput);
tweetsResultInput.append(searchInput);
试一试{
while(剩余tweets>0){
remainingTweets=wantedTweets-tweets.size();
如果(剩余tweets>100){
查询.计数(100);
}否则{
count(remainingTweets);
}
QueryResult result=twitter.search(查询);
addAll(result.getTweets());
状态s=tweets.get(tweets.size()-1);
lastSearchID=s.getId();
query.setMaxId(lastSearchID);
remainingTweets=wantedTweets-tweets.size();
}
//增加搜索中推文的最大数量
tweetsResult.append(搜索输入);
tweetsResult.append(“\n”);
//对于查询tweet,使用“searchInput”,获取格式为的每条tweet;发送tweet时,由谁发送,以及tweets文本和写入tweetsResults
用于(状态推文:推文){
tweetsResult.append(tweet.getCreatedAt()+”:\t@“+tweet.getUser().getScreenName()+”-“+tweet.getText());
tweetsResult.append(“\n”);
}
}捕获(twitter异常){
System.out.println(“未能搜索tweets:+te.getMessage());
系统退出(-1);
}

您要创建什么对象?你面临的问题是什么?上面的代码很好,但我想将所有Twitter内容移动到一个新类中,然后从主类调用搜索中的特定元数据。上面的代码很好-这很神奇,但我想将所有Twitter内容移动到一个新类中,然后从主类调用搜索中的特定元数据,然后至少您应该先尝试这样做,并告知在这样做时出现的错误?问题是我不知道如何将每个大问题分解为小问题。你能把你想要移动的功能(重构)放到方法中吗?移动方法将会更容易