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

Anylogic如何编程创建自定义Resources并添加到ResourcePool

你描述的自定义类型静态资源创建、预置属性后加入资源池的需求完全可以实现,以下是通用实现方案:

核心实现思路
  • 先定义自定义资源类(比如示例中的Room),在构造函数中完成所有自定义属性初始化,提前设置好名称、容量等需要的参数
  • 实现资源池的单例管理逻辑,确保全局只有一个目标资源池实例,避免重复创建
  • 开发资源池的添加方法,接收自定义资源类型的实例作为入参,完成校验后存入资源池的存储结构(数组、List、Map均可,Map更方便按资源名快速查询)
代码示例(Java版本,其他语言逻辑通用)

自定义Room资源类定义

public class Room {
    private String roomName;
    private int capacity;

    // 构造函数支持自定义属性赋值
    public Room(String roomName, int capacity) {
        this.roomName = roomName;
        this.capacity = capacity;
    }

    public String getRoomName() {
        return roomName;
    }

    public int getCapacity() {
        return capacity;
    }
}

资源池实现

import java.util.ArrayList;
import java.util.List;

public class MyResourcePool {
    // 存储所有Room资源,也可替换为Map实现按名称查询
    private final List<Room> roomList = new ArrayList<>();
    // 单例模式保证全局唯一资源池
    private static final MyResourcePool INSTANCE = new MyResourcePool();

    private MyResourcePool() {}

    public static MyResourcePool getInstance() {
        return INSTANCE;
    }

    // 对应示例中的addTo_myResourcePool方法
    public void addResource(Room room) {
        // 可在此处添加自定义校验规则,比如名称不允许重复、容量不能为负等
        if (room != null) {
            roomList.add(room);
        }
    }

    // 扩展方法:查询所有已添加的资源
    public List<Room> getAllRooms() {
        return new ArrayList<>(roomList);
    }
}

调用逻辑

和你预期的写法完全一致:

public class Main {
    public static void main(String[] args) {
        Room myRoom;
        myRoom = new Room("redRoom", 20);
        MyResourcePool.getInstance().addResource(myRoom);

        myRoom = new Room("greenRoom", 10);
        MyResourcePool.getInstance().addResource(myRoom);
        
        // 验证添加结果,输出为2
        System.out.println(MyResourcePool.getInstance().getAllRooms().size());
    }
}
注意事项
  • 如果你使用的是特定框架(如Unity、Spring、游戏引擎内置资源池)的相关能力,只需要让自定义资源类继承框架要求的基础资源接口,再调用框架提供的资源池添加方法即可,核心逻辑和上述示例一致
  • 资源属性自定义可以完全在构造函数中实现,也可以单独写set方法在实例化后、加入资源池前调用修改,灵活度很高
  • 可以在资源池的add方法中自定义校验规则,不符合要求的资源直接拦截不加入池

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:06:00