我想 return 一些东西并执行一些其他方法。 JAVA有什么办法吗?
I want to return something and execute some other method. Is there any way in JAVA?
我是 Java 的初学者。
所以我有一个问题。
我有一个方法:
public boolean method1() {
if (something) {
returnVal = true;
} else {
returnVal = false;
method2();
}
return returnVal;
}
我意识到第二个条件为真后,即使它会将returnVal设置为false,但它不会return,因为它会进一步执行method2()。有什么方法可以重构我的代码,以便无论哪个条件为真,我的 method1 returns returnVal.
谢谢。
您的方法将returnfalse
。 method2
刚刚结束。
在您return编辑之后无法强制调用方法。 (即使有办法实现这一点,也没有意义。如果 method2
应该在 method1
的调用者可以执行任何东西之前被调用,那将与调用 method2
在 returning 之前。)
既然你问了,你可以在调用 method2
之前执行 return 语句(有点),如下所示:
try {
return false;
} finally {
method2();
}
但这在语义上等同于您已有的内容。
it won't return because it will further execute method2()
为什么?
是的,它会 return 在您执行 之后 method2()
,但这是个问题吗?一旦 method2()
完成,那么 method1()
将 return false。
如果你想return然后执行该方法,那么你将需要在另一个线程中执行(这可能是不必要的)。
您的方法将在 method2()
运行 秒后 return 为假。
如果您想使用 method1()
的 return 值来决定是否要 运行 method2()
,您可以这样编写代码:
if (!method1()) {
method2();
}
也许你想要这样的东西?
public boolean method1() {
if (something) {
return true;
}
return false;
method2();//This will be dead code
}
还是这样?
public boolean method1() {
if (something) {
return true;
}
else {
try
{
return false; //first return false
}
finally
{
method2();//then call this
}
}
}
如果 method2 重定向或关闭某些内容,则 false 不会 return,method2 有什么作用?
它应该完成 method2 然后返回到 method1 和 returns false 除非 method2 对 returnVal 做一些事情使它为真。
此外,您可以 return true 或 false 而不是将变量设置为 return:
public boolean method1()
{
if (something)
{
return true;
}
else
{
method2();
return false;
}
}
我是 Java 的初学者。 所以我有一个问题。
我有一个方法:
public boolean method1() {
if (something) {
returnVal = true;
} else {
returnVal = false;
method2();
}
return returnVal;
}
我意识到第二个条件为真后,即使它会将returnVal设置为false,但它不会return,因为它会进一步执行method2()。有什么方法可以重构我的代码,以便无论哪个条件为真,我的 method1 returns returnVal.
谢谢。
您的方法将returnfalse
。 method2
刚刚结束。
在您return编辑之后无法强制调用方法。 (即使有办法实现这一点,也没有意义。如果 method2
应该在 method1
的调用者可以执行任何东西之前被调用,那将与调用 method2
在 returning 之前。)
既然你问了,你可以在调用 method2
之前执行 return 语句(有点),如下所示:
try {
return false;
} finally {
method2();
}
但这在语义上等同于您已有的内容。
it won't return because it will further execute
method2()
为什么?
是的,它会 return 在您执行 之后 method2()
,但这是个问题吗?一旦 method2()
完成,那么 method1()
将 return false。
如果你想return然后执行该方法,那么你将需要在另一个线程中执行(这可能是不必要的)。
您的方法将在 method2()
运行 秒后 return 为假。
如果您想使用 method1()
的 return 值来决定是否要 运行 method2()
,您可以这样编写代码:
if (!method1()) {
method2();
}
也许你想要这样的东西?
public boolean method1() {
if (something) {
return true;
}
return false;
method2();//This will be dead code
}
还是这样?
public boolean method1() {
if (something) {
return true;
}
else {
try
{
return false; //first return false
}
finally
{
method2();//then call this
}
}
}
如果 method2 重定向或关闭某些内容,则 false 不会 return,method2 有什么作用? 它应该完成 method2 然后返回到 method1 和 returns false 除非 method2 对 returnVal 做一些事情使它为真。
此外,您可以 return true 或 false 而不是将变量设置为 return:
public boolean method1()
{
if (something)
{
return true;
}
else
{
method2();
return false;
}
}