我有以下返回void的方法,我需要在另一个也返回void的方法中使用它。 我可以这样做吗?
public void doSomething(){}
public void myMethod()
{
return doSomething();
}
感谢你的所有评论,但让我更具体一点
如果发生某事我只会doSomething
,否则我会做其他事情
public void doSomething(){}
public void myMethod()
{
for(...)
if(somethingHappens)
{
doSomething();
return;
}
doOtherStuff();
}
我可以在if语句中编写return doSomething();
而不是上面的代码吗?
答案 0 :(得分:14)
不,只需这样做:
public void doSomething() { }
public void myMethod()
{
doSomething();
}
或在第二种情况下:
public void doSomething() { }
public void myMethod()
{
// ...
if (somethingHappens)
{
doSomething();
return;
}
// ...
}
“返回无效”意味着什么都不返回。如果您想“跳出”myMethod
的正文,请使用return;
编译器不允许编写return void;
(“非法表达式开头”)或return doSomething();
(“无法从结果类型为void的方法返回值”)。我理解返回方法调用的“void”或“void result”似乎是合乎逻辑的,但是这样的代码会产生误导。我的意思是大多数阅读类似return doSomething();
之类的程序员会认为有某些东西要返回。
答案 1 :(得分:5)
void函数不会/不能返回任何内容。只需调用该功能。
答案 2 :(得分:2)
不,Java void functione中不需要返回。相反,这样做:
public void myMethod(){
doSomething();
}
如果你愿意的话,你可以在doSomething()之后放一个回报,但正如我所说,这是不必要的。
答案 3 :(得分:0)
您必须像其他人指出的那样使用doSoemthing OR
public (insert data type like int, double, string, etc) myMethod()
{
return doSomething();
}
如果做某事返回int
// if you wanted to take 2 numbers and add them
public void myMethod()
{
valueOfX+Y = doSomething();
}
public int doSomething()
{
x = 2;
y = 2;
return X+Y;
}
希望清除它
答案 4 :(得分:0)
如果
(somethingHappens)
实际上取决于doSomething()
做了什么doSomething()
是一种可以修改的方法然后你应该考虑让它返回boolean
(或任何合适的类型)值,告诉被调用方法它是否发生。
代码看起来有点像这样:
public boolean doSomething() {
// internal working
if (internalCondition) {
// something done here
return true;
}
// not done ;
return false;
}
public void myMethod()
{
for(...)
if (doSomething())
{
return;
}
// didn't hit 'doSomething() == true'
doOtherStuff();
}