java - GridCell 类型不是通用的;它不能使用参数 <GridCell> 进行参数化。创建列表时

标签 java repast-simphony

我是java和吃饭的新手。我正在尝试创建 gridcells(值层单元格)类型的网格单元格(网格单元格)列表,但我不断收到错误“GridCell 类型不是通用的;它无法使用参数进行参数化”

如何解决这个问题?

package tester;

import java.util.List;

import repast.simphony.context.Context;
import repast.simphony.engine.environment.RunEnvironment;
import repast.simphony.engine.schedule.ScheduledMethod;
import repast.simphony.parameter.Parameters;
//import repast.simphony.query.space.grid.GridCell;
import repast.simphony.query.space.grid.GridCellNgh;
import repast.simphony.space.grid.Grid;
import repast.simphony.space.grid.GridPoint;
import repast.simphony.valueLayer.AbstractGridFunction;
import repast.simphony.valueLayer.BufferedGridValueLayer;
import repast.simphony.valueLayer.BufferedGridValueLayer.Buffer;
import repast.simphony.valueLayer.GridCell;
import repast.simphony.valueLayer.MaxGridFunction;
import repast.simphony.valueLayer.MinGridFunction;

            private void Move() {
                // TODO Auto-generated method stub

                BufferedGridValueLayer heat = (BufferedGridValueLayer) context.getValueLayer("Heat Layer");
                Grid <Object> grid = (Grid <Object>) context.getProjection("Insulation Grid");

                //Get the Grid Location of this insulation unit.
                GridPoint pt = grid.getLocation(this);

                //Use the GridCellNgh to retrieve the list of of Gridcells (grid) contianing Gridcells (valueLayergrid). 
                GridCellNgh <GridCell> nghCreator = new GridCellNgh <GridCell> (grid, pt, GridCell.class, 1, 1);


                List <GridCell <GridCell>> gridCells = nghCreator.getNeighborhood(true);
            }  

最佳答案

由于 Repast API 中有两个 GridCell 类,因此存在一些困惑。

GridCellNgh.getNeighborhood(true)返回类型 repast.simphony.query.space.grid.GridCell<T>这是位于特定网格位置的代理的容器。 GridCellNgh类旨在根据代理类的类型检索这些类型的网格单元,不适用于 ValueLayer repast.simphony.valueLayer.GridCell对象。

GridCellNgh可用于获取 GridPoints 列表,从中您可以获取关联的 GridCell通过GridCell.getPoint() ,但是这假设所有周围的网格位置都填充了传递到 GridCellNgh 的代理类。构造函数,仅当网格完全充满代理时才实用。

我建议简单地使用GridPoint pt = grid.getLocation(this)正如您当前所做的那样,获取中心点,然后只需在构成摩尔邻域的每个 x+/-1、y+/-1 处访问基于中心 x,y 的值层。

关于java - GridCell 类型不是通用的;它不能使用参数 <GridCell> 进行参数化。创建列表时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39306908/

相关文章:

java - 获取特定格式的mongo数据

java - Java 中 csv 文件的正则表达式

java - 通过 CLI 构建 Repast 模型

java - Repast 模型启动时出现的问题

java - 我的循环出了什么问题?

java - 在 Java 中确定 Selenium 驱动程序的类型

java - 使用 Axis 客户端 API 时,将 HTTP header 添加到未调用的 HTTP 请求的处理程序

java - 获取大小时 map 的空指针异常

java - Repast 代理表可以从用户代码中调用吗?