Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.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 IF-ELSE语句中的条件是否可能是一个方法?_Java_Android - Fatal编程技术网

Java IF-ELSE语句中的条件是否可能是一个方法?

Java IF-ELSE语句中的条件是否可能是一个方法?,java,android,Java,Android,我想知道方法是否可能是if-else语句中的条件 我有一个叫takephoto的方法。如果拍摄成功,它将使用另一种方法 我是这样做的 if (takephoto() == true) { anothermethod(); } 我得到一个错误,上面写着 对于参数类型void,boolean,运算符==未定义 排队 if (takephoto() == true) 这是我的拍摄方法 public static void takePhoto() { if(camera !=

我想知道方法是否可能是if-else语句中的条件

我有一个叫takephoto的方法。如果拍摄成功,它将使用另一种方法

我是这样做的

if (takephoto() == true)

 {
     anothermethod();
 }
我得到一个错误,上面写着

对于参数类型void,boolean,运算符==未定义

排队

if (takephoto() == true)
这是我的拍摄方法

public static void takePhoto() {
    if(camera != null) {
        camera.takePicture(null, null, pictureTakenHandler);
    }
}
takephoto方法应返回布尔值,而不是void,即nothing

那么答案是肯定的,但你应该这样写:

if (takephoto()) {
    // do something
}
你的版本也可以,但这个版本更简单更干净

如果takephoto返回布尔值,则该返回值本身就是If语句的条件,因此您可以将其编写为:

if (takephoto()) {
    ...
}
您必须使takephoto返回布尔值,而不是空值

--编辑--


是的,您可以这样做,但是您的takephoto方法应该返回true或false

public static boolean takephoto(){
    //if the code was successful
    return true;
}
如果图片不成功,则返回false

以下是您可以修复它的方法:


你说,如果拍摄成功,它将做另一种方法。你必须有一个拍照的方式来表明它是否成功。这样做的方法是返回一个布尔值

可以,但如果语句在同一类型的两个参数之间进行检查

您的if声明:

if (takephoto())
{
    ///if takephoto() true
    anothermethod();
}
您的拍照方法:

public static boolean takePhoto() {
    if(camera != null) {
        camera.takePicture(null, null, pictureTakenHandler);
        return true;
    }
    return false;
}

如果takephoto不返回布尔值怎么办。顺便说一下,takephoto做了一个动作。public static void takePhoto{ifcamera!=null{camera.takePicturenull,null,pictureTakenHandler;}}必须返回布尔值,否则将无法编译。如果它不返回布尔值,那么将其作为If语句有什么意义?它可以在之前或之后进行计算如果它返回一个void值,我该如何处理该语句?感谢如果它返回一个空值,您就不能进行比较。Void是空值,因此不能将空值与任何值进行比较。在本例中,您必须在函数中返回布尔值。public static void takePhoto{ifcamera!=null{camera.takePicturenull,null,pictureTakenHandler;}}}在这个方法中,我尝试将返回值设为true,但它似乎仅适用于布尔值。如果它不返回布尔值,我如何放置return?我的takephoto方法是一个不返回布尔值的操作。顺便说一句如果我这样做,我仍然会出错。saying无法将void转换为布尔值。谢谢,我不知道你所说的行动是什么意思,但还好。如果您的方法返回void,那么您不能在If语句中使用它作为条件。我忘了提到我的takephoto方法不是布尔类型。我应该怎么做才能使它成为一个条件?它必须是一个布尔类型,否则你就不能这样做。为什么不把它变成布尔型呢?该方法将与现在完全相同,只是它将另外返回true或false,从而解决您的问题。
if (takephoto()) {

}

public boolean takephoto()
{
    return true; //or false
}
if (takephoto())
{
    ///if takephoto() true
    anothermethod();
}
public static boolean takePhoto() {
    if(camera != null) {
        camera.takePicture(null, null, pictureTakenHandler);
        return true;
    }
    return false;
}