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 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测