grails - 在域类中初始化二维数组

标签 grails

我正在尝试在域类中表示16 * 16的网格。当前,网格由一维数组表示。这有效:

class Grid {

    List cells = []

    static hasMany = [cells:Cell]

    void init() {
        // Initialize cells
        for(int x = 0; x < 16*16 ; x++) {
            addToCells(new Cell())
        }
    }    

}

但是,创建二维数组的正确方法是什么?另外,有没有一种方法可以初始化所有单元而不进行迭代?

最佳答案

域类表示映射到基础数据库表的实体。我意识到在数据库中存储2D数组毫无意义。

正如@Tim_Yates在注释中建议的那样,最好使用collate方法。我将1D数组保留为属性,并且仍然可以使用以下方法访问网格的正确2D表示形式:

Cell[][] cellz = cells.collate(edgeSize)
Cell myCell = cellz[5][9]

关于grails - 在域类中初始化二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30683514/

相关文章:

tomcat - 登录用户的 session 在 tomcat 上的 grails spring security 中混淆

grails - Grails基础知识:日期,字符串和对象属性

logging - 为插件配置动态方法时出错[logging:1.3.7]:无法添加新方法[getLog]

grails - 如何使Groovy/Grails返回对象列表而不是对象列表?

django - Groovy 或 Django

grails - Grails Spring Security多个自定义(域)类

hibernate - Grails、ORM、 quartz 、乔布斯、

grails - 如何使用条件限制域结果

grails - grails-例如,当通过模板渲染通过Ajax更新页面时,如何查看结果页面源javascript。

grails - Validate()返回false,但已保存在数据库中