我对 JAVA 完全陌生。我正在用 JAVA 编写一个包装库,以使某些功能以类似基本的语言可用。
当我注意到一些代码没有在 JAVA 库中执行时,我在某个时候得到了库存,尽管编译器没有抱怨(使用 Eclipse)。我最终通过替换代码解决了它,如下所示:
public void VideoQuality(int vQuality) //did not work
进入
public boolean VideoQuality(int vQuality) //works
以下是完整的代码片段:
public void VideoQuality(int vQuality) //did not work
{if (vQuality==16) {
vidQuality=16;
}
else if (vQuality==-16) {
vidQuality=-16;
}
else if (vQuality==0) {
vidQuality=0;
}
else
vidQuality=-16;
vitamioExt.setVideoQuality(vidQuality);
}
public boolean VideoQuality(int vQuality) //works
{if (vQuality==16) {
vidQuality=16;
}
else if (vQuality==-16) {
vidQuality=-16;
}
else if (vQuality==0) {
vidQuality=0;
}
else
vidQuality=-16;
vitamioExt.setVideoQuality(vidQuality);
return true;
}
我认为void对应于 Visual Basic 中的 sub 而boolean对应于函数。
但是我发现以下代码使用void工作很奇怪
public void setVolume(float leftVolume,float rightVolume)
{
vitamioExt.setVolume(leftVolume, rightVolume);
}
我肯定遗漏了一些非常明显的东西,但我不明白为什么void -code 在boolean -code 工作时不起作用。
也许这取决于我如何调用代码?
任何人都可以点亮一些灯?
编辑:为了澄清什么不起作用,我的意思是代码:
vitamioExt.setVideoQuality(vidQuality);
没有在 void-snippet 中执行。
EDIT2: vidQuality 在代码的不同部分中声明。我刚刚发布了这些片段,因为问题出在这些片段上,并且变量都在起作用。
EDIT3:最后,我想我一定是错误地调用了 void-snippet,尽管编译器没有编译。在任何一种情况下,两个片段都应该执行,尽管 void-snippet 当然是正确的,因为我不期望返回值。