Использование Lombok для генерации «добытчиков» - PullRequest
0 голосов
/ 06 марта 2019

Я прохожу вводный курс по объектно-ориентированному программированию.

Наше текущее задание - создать версию "Защита башни" и помочь нам использовать Junit иЛомбок.Нам предоставили тонны кода, чтобы помочь с графическим интерфейсом и тому подобное, но я не думаю, что весь код необходим, чтобы понять, в чем проблема, так как это буквально первое, что мы должны сделать в задании.

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)?Я чувствую, что это имело бы смысл, если бы то, из чего мы хотели получить что-то, было списком, но здесь мы пытаемся получить что-то из Пути.

Я надеюсь, что кое-что из этого имеет смысл для кого-то.

1 Ответ

1 голос
/ 06 марта 2019

Я думаю, вы должны реализовать класс Path таким образом, чтобы при вызове конструктора, как в тесте, путь создавался со списком Point2D для каждой координаты. И get(int i) - это метод, который вы должны реализовать, чтобы вернуть эту точку из пути.

Lombok реализует простые методы получения (например, getId()), но не обязательно более сложный get(int i) метод, который возвращает определенную точку из пути.

...