Java Tweet类属性变更后boolean方法返回结果异常问题排查
问题分析与修复方案
1. kindaLiked() 方法逻辑错误
当前实现的判断条件是 likes < retweets,与预期逻辑完全相反:
- 当点赞数超过转发数时(如
likes=38、retweets=28),预期返回true,但现有逻辑返回false。 - 修复:将判断条件改为
likes >= retweets
2. toString() 方法输出异常
当前实现仅输出msg + message,既未包含转发数和点赞数,也不匹配预期格式:
- 预期格式:
msg [内容] rt [转发数] lk [点赞数] - 修复:补充转发数和点赞数的拼接逻辑
3. notLiked() 实际输出异常的潜在原因
实际输出中第五行notLiked()返回true,但此时点赞数应为51(远大于10),说明addLikes方法可能是直接赋值而非累加(如likes = 13而非likes +=13),需确保addLikes和addRetweets是累加逻辑(若未实现,需补充)。
修复后的代码实现
public boolean notLiked() { if (likes < 10) { return true; } return false; } public boolean kindaLiked() { // 修正条件:点赞数大于等于转发数时返回true if (likes >= retweets) { return true; } return false; } public boolean isTrending() { if (retweets + likes >= 75) { return true; } return false; } public String toString() { // 修正格式:添加转发数和点赞数,匹配预期输出 return "msg " + message + " rt " + retweets + " lk " + likes; }
补充累加方法(若未实现)
public void addLikes(int n) { likes += n; } public void addRetweets(int n) { retweets += n; }
修复后验证
运行测试代码将得到预期输出:
true false true false false false true msg aplus rt 75 lk 51
内容的提问来源于stack exchange,提问作者user20443922
相关产品推荐
相关产品推荐

