我想知道方法是否可能成为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);
}
}
答案 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;
}