gpt4 book ai didi

java - 当检查方法是否为 true 时,会再次调用该方法吗?

转载 作者:行者123 更新时间:2023-12-01 18:18:30 32 4
gpt4 key购买 nike

好的,在我的程序中我有两个类,LinkPhone.java 和 Frame.java。在 LinkPhone 部分,它调用一个函数来确定它是否为真,然后如果是则执行某些操作。但是当我调用该函数并使用 If 语句来检查它时,它会调用 If 语句中的语句。就像在控制台中一样,它显示两次“DEBUG:Frame init success”。为什么它会调用该函数两次?我该如何修复它?

LinkPhone.java:

Frame.initFrame();
if(Frame.initFrame() == true){
return;
} else {
return;
}

框架.java:

public static boolean initFrame(){
try {
JFrame frame = new JFrame("Link Phone");
System.out.println("DEBUG: Frame init success");
return true;
} catch (Exception e) {
System.out.println("DEBUG: Frame init failed!!!");
return false;
}
}

最佳答案

您调用了您的方法两次!

Frame.initFrame();
if(Frame.initFrame() == true){
return;
} else {
return;
}

只需调用一次:

// Frame.initFrame();  // no need for this one

if(Frame.initFrame()){
// hopefully you do more in here!
// return;
} else {
// hopefully you do more in here!
// return;
}
return;

一些旁注:

  • 我会避免将类称为“Frame”,因为这会与属于 Java 核心类的类发生冲突。给它一个更具描述性的名称以避免将来出现问题。
  • 看起来您正在调用静态方法。如果有指示的话这是可以的,但是过度使用静态方法和变量可能会增加程序的连通性,即它会增加代码耦合,这在较大的程序中可能会导致复杂性和错误风险增加。 Java 是一种 OOP 语言是有原因的,因为正确使用 OOP 技术有助于隐藏数据、减少错误并增加代码重用。
  • 您的 if 和 else 代码块都有返回调用。最好简化代码并将返回调用从 block 中取出。只需在两个 block 之后调用 return 即可。
  • 再次希望您的 if 和 else block 包含的代码不仅仅是匹配 return 语句。

关于java - 当检查方法是否为 true 时,会再次调用该方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28288758/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com