面向对象编程中get方法if-else逻辑异常:无法输出指定字符串求助
问题分析与解决方案
看起来你的代码里有几个关键问题导致没有输出,我来一步步帮你排查和修正:
核心问题梳理
- 空指针异常隐患:如果
Gh变量没有初始化(默认是null),调用Gh.length()会直接抛出NullPointerException,方法根本执行不到后续的逻辑,自然没有输出。 - 逻辑错误:你的
getGh方法里,当Gh长度不为0时,会把它设置为null——这意味着只要Gh原本有内容,最后都会被清空,ShowGh返回的就是Title: null,完全不符合你想要的效果。 - 缺少输出操作:你只定义了
ShowGh方法返回字符串,但没有通过System.out.println()之类的语句把这个字符串打印出来,就算方法正常执行,你也看不到结果。
修正后的代码示例
// 先在类中定义Gh变量,建议初始化避免null问题 private String Gh = ""; // 或者根据需求初始化为null,后续处理 public String getGh() { // 先判断Gh是否为null或空字符串,避免空指针 if (Gh == null || Gh.length() == 0) { Gh = "AAAAA"; } // 保留原Gh的内容,不再强制设为null return this.Gh; } // 遵循Java命名规范,方法名用小驼峰 public String showGh() { return "Title: " + this.Gh; } // 必须调用方法并打印结果才能看到输出 public static void main(String[] args) { // 替换成你的类名 YourClass obj = new YourClass(); obj.getGh(); // 先触发Gh的设置逻辑 System.out.println(obj.showGh()); // 输出到控制台 }
关键修改说明
- 空指针防护:增加
Gh == null的判断,确保在调用length()之前,先确认变量不是null,避免程序崩溃。 - 逻辑调整:只有当
Gh是null或者空字符串时,才将其设置为"AAAAA",其他情况保留原内容——这才符合你“检查字符串长度并设置指定内容”的需求。 - 输出操作:在
main方法中调用showGh()并通过System.out.println()打印结果,这是你能看到输出的关键步骤。 - 编码规范:把
ShowGh改成showGh,遵循Java小驼峰的方法命名习惯,让代码更易读。
如果你还有其他细节(比如Gh的初始化场景、类的完整结构),可以补充说明,我再帮你调整~
内容的提问来源于stack exchange,提问作者hi_ki
相关产品推荐
相关产品推荐

