我想返回一些东西并执行一些其他方法。JAVA有什么办法吗?
我是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,它也不会返回,因为它将进一步执行
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!由于您是该网站的新手,您可能需要阅读。