Java 嵌套函数-处理
您能在Processing(Java)中构建嵌套函数吗 这个代码不起作用。编译器读取:意外标记:voidJava 嵌套函数-处理,java,function,nested,processing,void,Java,Function,Nested,Processing,Void,您能在Processing(Java)中构建嵌套函数吗 这个代码不起作用。编译器读取:意外标记:void void keyPressed() { if(click1 = true) { graph(); } if(click2= true) { points(); } void graph() { .... ..
void keyPressed() {
if(click1 = true) {
graph();
}
if(click2= true) {
points();
}
void graph() {
....
....
}
}
不能有嵌套函数。您可以拥有匿名类,例如在新线程中:
Thread t = new Thread(new Runnable() {
@Override
public void run() {
// This is all in an anonymous Runnable class.
}
});
就像其他人说的:不,你不能有那样的“本地功能” 您也没有正确地进行布尔比较,因为单个=是赋值,而不是比较。它应该是:
if(click1 == true) {
或者,由于您已经在使用布尔语言,您可以直接参考它:
if(click1) {
无论如何,回到你的问题:你不能做你所说的,但是你可以通过使用匿名类来绕过它。若要使用匿名类,您需要有一个现有类,该类要通过重写其一个或多个函数来扩展,您可以在方法中执行该操作
例如,我们可以通过定义一个定义run()方法的匿名类来实现Runnable接口,然后直接调用该匿名类。看起来是这样的:
void keyPressed() {
if(click1) {
new Runnable(){
public void run(){
//do graph stuff here
}
}.run();
}
if(click2) {
new Runnable(){
public void run(){
//do points stuff here
}
}.run();
}
}
有关匿名内部类的详细信息,请单击此处:
然而,所有这些都有一种非常糟糕的代码味道,这不是任何理智的人都会这样做的。为什么你认为你需要一个本地方法?很可能您应该使用单独的类,或者使用常规的旧顶级方法。在Java中无法做到这一点。匿名类可能是您所需要的。通常不应该在Processing的回调函数中绘制。在那里使用一个标志并从
draw()
调用绘图。这也适用于处理吗?哦,这是一个Java示例。不过,处理也没有它们。