Java 通过多种深度的方法推送返回
这可能会迷失在StackOverflow的深处,这主要是一个学术问题,但我很好奇,似乎找不到正确的方式来表达这一点 我的情况是这样的:我有一些方法依赖于一组特定的条件为真。事实证明,我有几种方法依赖于这些条件为真。如果这些条件为真,则不会执行任何操作,并且需要条件集的Java 通过多种深度的方法推送返回,java,Java,这可能会迷失在StackOverflow的深处,这主要是一个学术问题,但我很好奇,似乎找不到正确的方式来表达这一点 我的情况是这样的:我有一些方法依赖于一组特定的条件为真。事实证明,我有几种方法依赖于这些条件为真。如果这些条件为真,则不会执行任何操作,并且需要条件集的methodA()将继续执行。否则,它将给出一个特定的错误,这取决于哪个条件为假,以及。。。我们来看看它还能做什么 因为我有多个方法需要这个功能,所以我将它移动到它自己的静态函数needs()。然后,我在每个需要满足这些条件的方法的
methodA()
将继续执行。否则,它将给出一个特定的错误,这取决于哪个条件为假,以及。。。我们来看看它还能做什么
因为我有多个方法需要这个功能,所以我将它移动到它自己的静态函数needs()
。然后,我在每个需要满足这些条件的方法的顶部插入方法调用
问题:有没有办法让某个方法强制调用方法返回?因此,在我的示例中,needs()
将导致methodA()
返回,而不需要执行任何特殊操作,只需首先调用needs()
同样,这主要是学术性的。。我知道有很多简单的方法可以避免这种情况,但我想知道你是否能做到。请不要回答“你为什么要这样做?只要做一个if语句,让needs()
返回一个boolean
”我知道。但这不是我的问题
谢谢 无法直接控制父方法的行为(我不介意这里的任何反射攻击),因为该方法只知道自己的一切(如果没有堆栈跟踪),但是您可以抛出一个
异常
并添加一个空的catch
子句。无法直接控制父方法的行为(我不介意这里的任何反射黑客),因为该方法只知道它自己的一切(如果您没有得到堆栈跟踪),但是您可以抛出一个异常
并添加一个空的catch
子句。无法直接控制父方法的行为(我不介意这里的任何反射黑客),因为该方法只知道它自己的一切(如果您没有得到堆栈跟踪),但是您可以抛出一个异常
并添加一个空的catch
子句。无法直接控制父方法的行为(我不介意这里的任何反射黑客),因为该方法只知道它自己的一切(如果您没有得到堆栈跟踪),但是您可以抛出一个异常
并添加一个空的catch
子句。您不能直接这样做,但您可以:
- 将方法提取到单独的接口,并实现一个包装器,该包装器将执行检查,并在满足条件时将方法委托给实际的实现类
- 使用动态代理或方面来执行上述操作
- 将方法提取到单独的接口,并实现一个包装器,该包装器将执行检查,并在满足条件时将方法委托给实际的实现类
- 使用动态代理或方面来执行上述操作
- 将方法提取到单独的接口,并实现一个包装器,该包装器将执行检查,并在满足条件时将方法委托给实际的实现类
- 使用动态代理或方面来执行上述操作
- 将方法提取到单独的接口,并实现一个包装器,该包装器将执行检查,并在满足条件时将方法委托给实际的实现类
- 使用动态代理或方面来执行上述操作
- 您不能直接这样做,但您可以:
- 您不能直接这样做,但您可以:
- 您不能直接这样做,但您可以:
interface Methods {
void methodA();
void methodB();
void methodC();
}
class MethodsImpl implements Methods {
...
}
class ConditionalMethodsWrapper implements Methods {
private final Methods delegate;
ConditionalMethodsWrapper(Methods delegate) {
this.delegate = delegate;
}
boolean condition() {
...
}
void methodA() {
if (condition()) {
delegate.methodA();
}
}
void methodB() {
if (condition()) {
delegate.methodB();
}
}
void methodC() {
if (condition()) {
delegate.methodC();
}
}
}