qq_50822956 2022-07-23 16:39 采纳率: 62.5%
浏览 13
已结题

在實現接口后本地測試全部通過,但代碼提交后出現異常

问题遇到的现象和发生背景

一個接口


```java
public interface RemoteControlCar {
     void drive();
     int getDistanceTravelled();
}

并且有兩個類實現了這個接口,

```java
public class ExperimentalRemoteControlCar implements RemoteControlCar {
    private final int SPEED = 20;

    private int distanceTraveled=0;
    public void drive() {
        distanceTraveled += SPEED;
    }
    public int getDistanceTravelled() {
        return distanceTraveled;
    }
}

```java
class ProductionRemoteControlCar implements RemoteControlCar {
    private final int SPEED = 10;
    private int distanceTraveled;
    private int numberOfVictories;
    public void drive() {
        distanceTraveled += SPEED;
    }
    public int getDistanceTravelled() {
        return distanceTraveled;
    }
    public void setNumberOfVictories(int numberOfVictories) {
        this.numberOfVictories = numberOfVictories;
    }
    public int getNumberOfVictories() {
        return numberOfVictories;
    }
}



public class TestTrack {

    public static void race(RemoteControlCar car)
 {
     car.drive();
    }
    public static List<ProductionRemoteControlCar> getRankedCars(ProductionRemoteControlCar prc1,
                                                                 ProductionRemoteControlCar prc2
                                                                ) {
     List<ProductionRemoteControlCar>  prolist=new ArrayList<>();
          prolist.add(prc1);
          prolist.add(prc2);
         prolist.sort((a,b) ->  a.getNumberOfVictories()-b.getNumberOfVictories());
          return  prolist;
        }
}

測試類


import org.junit.jupiter.api.Test;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;

public class RemoteControlCarTest {
    @Test
    public void race() {
        ProductionRemoteControlCar productionCar = new ProductionRemoteControlCar();
        ExperimentalRemoteControlCar experimentalCar = new ExperimentalRemoteControlCar();
        TestTrack.race((RemoteControlCar) productionCar);
        TestTrack.race((RemoteControlCar) productionCar);
        TestTrack.race((RemoteControlCar) experimentalCar);
        TestTrack.race((RemoteControlCar) experimentalCar);
        assertThat(experimentalCar.getDistanceTravelled() - productionCar.getDistanceTravelled()).isEqualTo(20);
    }

    @Test
    public void rankCars() {
        ProductionRemoteControlCar prc1 = new ProductionRemoteControlCar();
        ProductionRemoteControlCar prc2 = new ProductionRemoteControlCar();
        prc1.setNumberOfVictories(3);
        prc2.setNumberOfVictories(2);
        List<ProductionRemoteControlCar> rankings = TestTrack.getRankedCars(prc1, prc2);
        assertThat(rankings.get(1)).isEqualTo(prc1);
    }

    @Test
    public void ensureCarsAreComparables() {

        assertThat(RemoteControlCar.class).isAssignableFrom(ProductionRemoteControlCar.class);
    }
}


本地測試全部通過,

img

但是提交至exercism.org后報錯如下:

运行结果及报错内容

img

  • 写回答

1条回答 默认 最新

  • 卖柴火的小伙子 2022-07-23 19:44
    关注

    报错是类型转化异常,检查一下是不是漏提代码了?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月3日
  • 已采纳回答 7月26日
  • 创建了问题 7月23日

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题