gpt4 book ai didi

java - 声明 PApplet 的静态实例?

转载 作者:太空宇宙 更新时间:2023-11-04 14:14:44 25 4
gpt4 key购买 nike

我希望能够从可序列化类中引用 PApplet,而不必扩展 PApplet 或将其传递到构造函数中。是否有可能做到这一点?这是我失败的尝试:

import java.io.*;

static PApplet p = new PApplet();

Foo f = new Foo();

void setup()
{
f.render();
}

static class Foo implements Serializable
{
void render()
{
p.rect(10,10,10,10);
}
}

最佳答案

您的问题有点不清楚:您的 PApplet 实例是否必须是静态的?您的 Foo 类必须是静态的吗?或者您只是将它们设为静态,因为您认为必须这样做?

为什么需要单独的 PApplet 实例?如果这是来自处理草图,则您已经“处于”PApplet 实例中,您可以使用this 关键字来引用该实例。

这是您的代码,稍作修改即可使用 this 关键字:

import java.io.*;

PApplet p = this;

Foo f = new Foo();

void setup()
{
f.render();
}

class Foo implements Serializable
{
void render()
{
p.rect(10,10,10,10);
}
}

但是,this 关键字(和 p 变量)并不是真正必要的。此代码执行相同的操作:

import java.io.*;

Foo f = new Foo();

void setup()
{
f.render();
}

class Foo implements Serializable
{
void render()
{
rect(10,10,10,10);
}
}

就像我说的,你在问什么有点不清楚,所以也许你需要 p 变量来实现某些目的。答案是只使用 this 关键字并去掉 static 关键字。

关于java - 声明 PApplet 的静态实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27894456/

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