Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 方法中的布尔值与调用方法前的布尔值?_Java_Methods_Boolean_Action_Conditional Statements - Fatal编程技术网

Java 方法中的布尔值与调用方法前的布尔值?

Java 方法中的布尔值与调用方法前的布尔值?,java,methods,boolean,action,conditional-statements,Java,Methods,Boolean,Action,Conditional Statements,因此,我想检查我的ev3机器人是否已连接,然后再进行操作 还有什么更好的办法 if (ev3Connected) doStuff(); private void doStuff() { //stuff } 还是这个 doStuff(); private void doStuff() { if (ev3Connected) { //stuff } } 还是根本没有差别?一般来说,我会选择你的第一个选择 if (ev3Connected)

因此,我想检查我的ev3机器人是否已连接,然后再进行操作

还有什么更好的办法

if (ev3Connected)
    doStuff();

private void doStuff() {
    //stuff
}
还是这个

doStuff();

private void doStuff() {
    if (ev3Connected) {
        //stuff 
    }
}

还是根本没有差别?

一般来说,我会选择你的第一个选择

if (ev3Connected)
    doStuff();

private void doStuff() {
    //stuff
}
我这样做是因为更高级的方法应该总是更容易阅读。或者,您可以将doStuff()重命名为dostuffivoconnected(),但您可以感觉到if语句更清晰

这样做的好处是,调试代码的人即使没有输入方法,也会知道在单步执行代码时没有执行doStuff()


如果绝对必须确保除非ev3Connected,否则永远不要输入doStuff(),那么您应该在方法内部抛出异常,同时仍保留If签入父代码。我可以想象,如果改为连接EV4,doStuff可以工作。

这完全取决于您正在尝试做什么。如果总是需要在执行
//stuff
之前检查条件,请将其放入方法中。如果您希望能够在不进行检查的情况下调用该方法,则必须在该方法之外进行检查。无论使用何种语言,问题都是一样的。因此被标记为欺骗。