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

时间:2014-02-03 22:20:37

标签: java android

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

我有一个名为takephoto()的方法。如果takephoto()成功完成,它将执行另一种方法。

我是这样做的

if (takephoto() == true)

 {
     anothermethod();
 }

我收到错误消息

对于参数类型void,boolean

,运算符==未定义

为行

if (takephoto() == true)

这是我的takephoto()方法

public static void takePhoto() {
    if(camera != null) {
        camera.takePicture(null, null, pictureTakenHandler);
    }
}

7 个答案:

答案 0 :(得分:4)

方法takephoto应该返回boolean,而不是void(即没有)。

然后答案是肯定的,但你应该这样写:

if (takephoto()) {
    // do something
}

您的版本也可以使用,但这个版本更简单,更清晰。

答案 1 :(得分:2)

如果takephoto()返回一个布尔值,那么该返回值本身就是if语句的条件,因此您可以将其写为:

if (takephoto()) {
    ...
}

答案 2 :(得分:1)

您必须让takephoto()返回boolean,而不是void值。

----编辑----

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

答案 3 :(得分:1)

是的,你可以这样做,但你的takephoto()方法应该返回true或false。

public static boolean takephoto(){
    //if the code was successful
    return true;
}

如果图片不成功,则返回false。

以下是解决问题的方法:

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

答案 4 :(得分:1)

if (takephoto()) {

}

public boolean takephoto()
{
    return true; //or false
}

答案 5 :(得分:0)

你说“如果takephoto()成功完成,它将采用另一种方法。”你必须有一种拍摄方式,以表明它是否成功。你这样做的方法是返回一个布尔值。

答案 6 :(得分:0)

是的,你可以,但是如果声明检查两个相同类型的参数。

你的if语句:

if (takephoto())
{
    ///if takephoto() true
    anothermethod();
}

你的拍照方法:

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