gpt4 book ai didi

java - 从java中的类中删除命名空间

转载 作者:行者123 更新时间:2023-11-30 06:03:40 25 4
gpt4 key购买 nike

我已经在 IDEA 中创建了一个处理草图,并且正在使用多个文件。然而,在第二个文件中,没有定义任何处理方法,所以我找到了一个技巧:

...
public static PApplet processing
public void setup () {
processing = this;
...
}
...

我可以通过调用Main.processing.*(主类称为“Main”)来访问另一个类中的方法,并且我可以很好地使用这些方法。

我想知道如何摆脱每次我想要进行函数调用时键入 Main.processing.... 的麻烦,有没有一种方法可以为所有函数添加别名函数以便我可以像往常一样调用它们? point(...) 而不是 Main.processing.point(...)

最佳答案

我认为其他问题缺少您正在使用的处理的上下文,它有自己的怪癖。

但一般来说,您需要做的是将您的草图实例传递到任何非 PApplet 类中。这是一个例子:

public class MySketch extends PApplet{

MyOtherClass myOtherClass;

void setup(){
myOtherClass = new MyOtherClass(this);
}

void draw(){
myOtherClass.drawCircle();
}
}

public class MyOtherClass{
PApplet sketch;

public MyOtherClass(PApplet sketch){
this.sketch = sketch;
}

void drawCircle(){
sketch.ellipse(100, 100, 100, 100);
}
}

此类使用 this 关键字将对顶级 PApplet 类的引用传递到 MyOtherClass 构造函数中。构造函数将引用存储在变量中,现在可以使用该变量来访问处理的函数。

没有一种干净的方法来给函数起别名,所以你可以直接调用它们,而且恕我直言,大多数其他答案都有点hacky。您绝对不应该为此使用 static 关键字,因为这滥用了 static 的用途。

我会坚持使用草图引用的简单方法。如果它真的让您烦恼,也许可以将其命名为 s,这样每个函数调用就只有两个额外的字符 s.

无耻的 self 推销:here是关于将Processing用作Java库的指南,包括上述方法。

关于java - 从java中的类中删除命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51782570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com