You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Processing 3.3.7中对象共享另一对象问题求助

关于你的ArrayList与setup方法问题的排查建议

嘿,兄弟!别发愁,新手刚接触集合类和Processing(看你用了size()方法猜的😜)的时候踩坑太正常啦!你贴的代码片段虽然没写完,但我结合常见的新手问题给你梳理几个排查方向:

1. 先检查基础依赖与定义

  • 别忘了导入ArrayList的包!在代码顶部必须加:
    import java.util.ArrayList;
    
    不然编译器根本不知道ArrayList是什么~
  • 你的Individual类有没有正确定义?比如有没有构造函数?如果在循环里要创建Individual实例,这个类至少得有一个无参或者带参数的构造函数,不然没法new Individual()哦!

2. 循环逻辑的常见问题

你提到setup()里的循环有问题,大概率是往集合里加元素的步骤出错了,给你个完整的示例代码参考:

import java.util.ArrayList;

// 先定义好你的Individual类
class Individual {
    private int id;
    
    // 无参构造函数,方便快速创建实例
    public Individual() {
        this.id = (int)(Math.random() * 100);
    }
    
    // 带参数的构造函数,自定义属性值
    public Individual(int id) {
        this.id = id;
    }
    
    // 要是需要访问id,加个getter方法
    public int getId() {
        return id;
    }
}

public class Main {
    ArrayList<Individual> individuals = new ArrayList<Individual>();
    
    void setup() {
        size(500, 500); // 这是Processing的画布设置方法,没问题
        // 示例:循环添加10个Individual到集合
        for (int i = 0; i < 10; i++) {
            // 两种创建方式选一种就行
            individuals.add(new Individual(i)); 
            // individuals.add(new Individual());
        }
        
        // 验证一下集合里有没有元素
        System.out.println("集合里共有" + individuals.size() + "个个体");
        for (Individual ind : individuals) {
            System.out.println("个体ID:" + ind.getId());
        }
    }
    
    // 如果是在普通Java环境运行,模拟Processing的size方法
    void size(int width, int height) {
        System.out.println("已设置画布尺寸:" + width + "x" + height);
    }
    
    public static void main(String[] args) {
        Main app = new Main();
        app.setup();
    }
}

3. 快速定位问题的小技巧

如果还是报错,一定要把完整的编译/运行报错信息和完整代码贴出来!比如是报NullPointerException(空指针)还是ClassNotFoundException(找不到类),这些细节能帮我们一秒定位问题~

内容的提问来源于stack exchange,提问作者Brynhildr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:49:52