我想返回一些东西并执行一些其他方法。JAVA有什么办法吗?

我想返回一些东西并执行一些其他方法。JAVA有什么办法吗?,java,return,void,Java,Return,Void,我是Java的初学者。 所以我有一个问题 我有一个方法: public boolean method1() { if (something) { returnVal = true; } else { returnVal = false; method2(); } return returnVal; } 我意识到,在第二个条件为true之后,即使它将returnVal设置为false,它也不会返回,因为它将进一步执行

我是Java的初学者。 所以我有一个问题

我有一个方法:

public boolean method1() {
    if (something) {
        returnVal = true;
    } else {
        returnVal = false;
        method2();
    }
    return returnVal;
}
我意识到,在第二个条件为true之后,即使它将returnVal设置为false,它也不会返回,因为它将进一步执行method2()。有没有办法重构我的代码,以便无论哪个条件为真,method1都返回returnVal

谢谢。

您的方法将返回
false
。就在
method2
完成之后

返回后,无法强制调用方法。(即使有办法做到这一点,也没有意义。如果
method2
应该在
method1
的调用方可以执行任何操作之前调用,这与在返回之前调用
method2
是一样的。)

但是,由于您进行了询问,因此可以在调用
method2
(排序)之前执行return语句,如下所示:

try {
    return false;
} finally {
    method2();
}
但这在语义上等同于您已经拥有的。

您的方法将返回
false
。就在
method2
完成之后

返回后,无法强制调用方法。(即使有办法做到这一点,也没有意义。如果
method2
应该在
method1
的调用方可以执行任何操作之前调用,这与在返回之前调用
method2
是一样的。)

但是,由于您进行了询问,因此可以在调用
method2
(排序)之前执行return语句,如下所示:

try {
    return false;
} finally {
    method2();
}
但这在语义上等同于你已经拥有的

它不会返回,因为它将进一步执行
method2()

为什么?

是的,在执行
method2()
之后,它将返回,但这是一个问题吗?一旦
method2()
完成,那么
method1()
将返回false

如果要返回并执行该方法,则需要在另一个线程中执行(这可能是不必要的)

它不会返回,因为它将进一步执行
method2()

为什么?

是的,在执行
method2()
之后,它将返回,但这是一个问题吗?一旦
method2()
完成,那么
method1()
将返回false


如果要返回然后执行该方法,则需要在另一个线程中执行该操作(这可能是不必要的)。

在运行
method2()
后,您的方法将返回false

如果要使用
method1()
的返回值来决定是否要运行
method2()
,可以这样编写代码:

if (!method1()) {
    method2();
}

运行
method2()
后,您的方法将返回false

如果要使用
method1()
的返回值来决定是否要运行
method2()
,可以这样编写代码:

if (!method1()) {
    method2();
}

也许你想要这样的东西

公共布尔方法1(){
如果(某物){
返回true;
}
返回false;
method2();//这将是死代码

}
也许你想要这样的东西

公共布尔方法1(){
如果(某物){
返回true;
}
返回false;
method2();//这将是死代码

}
如果method2重定向或关闭某些内容,则false不会返回,method2会做什么? 它应该完成method2,然后返回method1并返回false,除非method2对returnVal做了一些操作使其为真

此外,您可以只返回true或false,而不是设置要返回的变量:

public boolean method1() 
{
   if (something) 
   {
      return true;
   }
   else 
   {
    method2();
    return false;
   }
}

如果method2重定向或关闭某个对象,则false不会返回,method2做什么? 它应该完成method2,然后返回method1并返回false,除非method2对returnVal做了一些操作使其为真

此外,您可以只返回true或false,而不是设置要返回的变量:

public boolean method1() 
{
   if (something) 
   {
      return true;
   }
   else 
   {
    method2();
    return false;
   }
}

您的第一个代码段甚至没有编译。您的第一个代码段甚至没有编译。user2262292,欢迎使用StackOverflow!由于您是该网站的新用户,可能需要阅读。user2262292,欢迎使用StackOverflow!由于您是该网站的新手,您可能需要阅读。