使用Lombok生成“Getters”

问题描述 投票:0回答:1

我正在学习面向对象编程的入门课程。

我们目前的任务是创建一个“塔防”版本,并帮助我们使用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)'”。以下是我在“Path”课程中所写的内容:

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)进行测试的真正原因是什么?我觉得如果我们想要得到的东西是一个列表是有意义的,但在这里我们试图从路径中得到一些东西。

我希望其中一些对某人有意义。

java getter-setter lombok
1个回答
1
投票

我认为你应该实现Path类,这样当在测试中调用构造函数时,将为每个坐标创建一个带有Point2D列表的Path。而get(int i)是一种必须实现的方法,可以从路径返回该点。

Lombok实现了简单的getter(如getId()),但不一定是更复杂的get(int i)方法,它返回路径中的特定点。

© www.soinside.com 2019 - 2024. All rights reserved.