java - 使用 Lombok 生成“Getters”
问题描述
我正在上面向对象编程的入门课程。
我们目前的任务是创建一个版本的“塔防”,并帮助我们使用 Junit 和 Lombok。我们已经获得了大量代码来帮助处理 GUI 等问题,但我不认为所有代码都是理解问题所在所必需的,因为它实际上是我们在作业中应该做的第一件事。
package edu.chl.hajo.td.model;
import org.junit.Test;
import java.util.Arrays;
import java.util.List;
import static edu.chl.hajo.td.model.TowerDefence.TILE_SIZE;
import static org.junit.Assert.*;
/*
JUnit testing of model
*/
public class ModelTest {
@Test
public void testPath() throws Exception {
List<String> strPts = Arrays.asList(
"0,3", "3,3", "3,9", "8,9", "8,4", "12,4",
"12,12", "3,12", "3,17", "17,17",
"17,6", "20,6");
Path p = new Path(0, strPts, TILE_SIZE);
assertTrue(p.get(0) != null);
// etc.
}
// Add more tests as needed
}
所以我得到的错误消息是“无法解析方法'get(int)'”。这是我在“路径”类中写的:
import java.util.ArrayList;
import java.util.List;
import lombok.Data;
/*
* A path for creeps (waves) to follow
*/
public class Path {
@Getter
private final int id;
@Getter
private final int size;
@Getter
private final List<Point2D> points; //= null; // TODO
// TODO
public Path(int id, List list, int size) {
this.id = id;
this.points = list;
this.size = size;
}
}
但如果我正确理解“Getters”,@Getter 只会创建 getId、getSize 和 getPoints 等方法。测试究竟想用 get(0) 做什么?我觉得如果我们想从列表中获取某些东西是有道理的,但是在这里我们试图从路径中获取一些东西。
我希望其中一些对某人有意义。
解决方案
我认为您应该实现Path
该类,以便在测试中调用构造函数时,会Point2D
使用每个坐标的列表创建路径。并且get(int i)
是您必须实施以从路径返回该点的方法。
Lombok 实现了简单的 getter(如getId()
),但不一定是get(int i)
从路径返回特定点的更复杂的方法。
推荐阅读
- javascript - 未找到没有参数的“export2”反向
- apache-spark - 如何将数据帧传递给 spark udf?
- enums - Alloy 中的赋值和 Enum 的使用
- c++ - 将大字符串作为右值传递时的 std::move 性能?
- excel - 特定周数内的 Excel 日期计算
- windows - 命令提示符下的 perl 文件关联不起作用
- php - 我们如何在 laravel 中发送相应的电子邮件验证链接 admin、vendor 和 user auth,
- hadoop - org.apache.ignite.IgniteException:对于输入字符串:“30s”在 ignite hadoop 执行中
- arrays - Shellscript 将 CSV 转换为 XML
- android - 单元测试时不调用 Rxjava 2 on error