前提・実現したいこと
Twitterの簡易的な疑似アプリを作成する途中で、リプライやリツイートをするときに元ツイートのユーザーIDを表示させたい
該当のソースコード
Java
1import java.text.SimpleDateFormat; 2import java.util.Calendar; 3 4public abstract class Base { 5 public int tweetId = 0; 6 public long datetime = 0; 7 public String userId = ""; 8 9 public Base(int tweetId,String userId) { 10 this.tweetId = tweetId; 11 this.userId = userId; 12 this.datetime = getNow(); 13 } 14 public static long getNow(){ 15 Calendar cl = Calendar.getInstance(); 16 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss"); 17 return Long.parseLong(sdf.format(cl.getTime())); 18 } 19 public int getTweetId() { 20 return tweetId; 21 } 22 public abstract String getText(); 23 24public class Tweet extends Base{ 25 public static String text; 26 public Tweet(int tweetId,String userId,String text) { 27 super(tweetId, userId); 28 this.text = text; 29 } 30 @Override 31 public String getText(){ 32 String tweet = text + " from @" + userId + "[" + datetime + "]"; 33 return tweet; 34 } 35} 36 37public class Reply extends Tweet{ 38 private String target = super.userId; 39 public Reply(int tweetId,String userId,String text, Tweet target) { 40 super(tweetId,userId,text); 41 } 42 @Override 43 public String getText() { 44 String reply = "@" + target + " " + super.getText(); 45 return reply; 46 } 47}
補足情報(FW/ツールのバージョンなど)
例えばMainで
Tweet t1 = new Tweet(0, "gaju" , "わからない");
を実行して
わからない from @gaju [20210113175300]
とツイートした時に、このツイートに対するリプライを
@gaju わかる from @someone [20210113175400]
とさせるようにしたいのですが、
Replyクラスのtargetがどうしてもリプライの送り主と同じになってしまい、
@someone わかる from @someone [20210112175400]
のようになってしまいます。
eclipseを使って開発をしています。
プログラミング自体が学びたてなので色々と拙くわかりづらい部分も多々あると思いますが、回答いただけると幸いです。
回答1件
あなたの回答
tips
プレビュー