Java if语句

Java if语句,java,Java,如果我在If语句下面放一些东西,它会工作吗?如果没有,如何使其返回 为每个if something.equals(x)语句获取某物? PS:忽略语法。If语句位于main方法中 if (something.equals(x))){ return getSomething; private void getSomething() { String variable1 = "SELECT x from y"; return; } } 这是行不通的,因为J

如果我在If语句下面放一些东西,它会工作吗?如果没有,如何使其返回 为每个if something.equals(x)语句获取某物? PS:忽略语法。If语句位于main方法中

 if (something.equals(x))){
   return getSomething;

   private void getSomething() {
     String variable1 = "SELECT x from y";
     return;
   }
 }

这是行不通的,因为Java不允许嵌套方法定义。此外,即使没有参数,也必须在方法调用中包含空括号
()
,并且不能返回
void
方法调用的结果。

如果将
getSomething()
定义为该类中的普通方法,这将起作用(并且它返回了与该方法相同的类型,目前它没有返回,因为它是void)但是不能嵌套方法定义


如果您只希望在这种情况下使用
getSomething()
方法,只需将其声明为private,这样它就不能在此特定类之外使用。

您不能以这种方式嵌套方法。相反,请按如下方式分解您的方法:

public String someMethod() {
    if (something.equals(x))) {
         return getSomething();

    return getSomethingElse();
}

private String getSomethingElse() {
    return "SELECT x from y";
}

您是否试图在另一个方法中定义一个方法?当遇到类似“它会工作吗”的疑问时,您可以自己尝试。这不像写入Eclipse并调试它会花费您一个手臂。这是对“物流”一词的误用。物流与逻辑无关。什么意思?您是说在主方法内部?不,在类内部作为另一个顶级方法。您不能以这种方式在另一个方法内部声明一个方法。