Java问题;无法将 Activity 添加到 ArrayList<???> 需要帮助

标签 java methods arraylist compilation compiler-errors

我正在准备星期一的考试,但没有答案。到目前为止我做得很好,但我现在卡住了。我不知道该怎么办。
在互联网上搜索了很多年,但我想我错过了一件小事。

也许你们可以帮帮我?

问题:我需要将 Activity 放在日程安排中 ArrayList<...>
并打印出来我不知道该怎么做。

我试过 ArrayList Integers String 我不知道 ** 我是怎么做到的:P
目标在 GarageSimulation 中运行模拟 OneDay()。

测试者.java

public class Tester {
public void equalsTest() {

    Car c1=new Car("Toyota", "Prius", 'p', 1800);
    Car c2=new Car("Citroen", "C5 Tourer", 'd', 2300);
    Car c3=new Car("Toyota", "Prius", 'd', 2050);
    System.out.println(c1.equals(c1));
    System.out.println(c1.equals(c2));
    System.out.println(c1.equals(c3));
    Bicycle b1=new Bicycle("MesserSchmidt", "Targa", false);
    Car c4=new Car("MesserSchmidt", "Targa", 'p', 950);
    System.out.println(c4.equals(b1));

    /* Expected outcome
    true
    false
    true
    false
     */
}

public void simulateOneDayTest() {

    Car c1=new Car("Toyota", "Prius", 'p', 1800);
    Car c2=new Car("Citroen", "C5 Tourer", 'd', 2300);
    Car c3=new Car("Toyota", "Prius", 'd', 2050);
    Bicycle b1=new Bicycle("MesserSchmidt", "Targa", false);
    Car c4=new Car("MesserSchmidt", "Targa", 'p', 950);
    Car c5=new Car("Hummer", "XL", 'd', 5600);
    Car c6=new Car("BMW", "R3", 'd', 6350);
    Car c7=new Car("Citroen", "C5 Tourer", 'd', 2300);

    GarageSimulation gs=new GarageSimulation();
    gs.addVehicle(c1);
    gs.addVehicle(c2);
    gs.addVehicle(c3);
    gs.addVehicle(b1);
    gs.addVehicle(c4);
    gs.addVehicle(c5);
    gs.addVehicle(c6);
    gs.addVehicle(c7);

    gs.simulateOneDay();

    /* Expected outcome
    Eating/drinking takes 15 minutes
    Current time is 8:15
    Visiting the toilet takes 10 minutes
    Current time is 8:25
    Repairing takes 36 minutes
    Current time is 9:01
    Eating/drinking takes 15 minutes
    Current time is 9:16
    Visiting the toilet takes 10 minutes
    Current time is 9:26
    Repairing takes 46 minutes
    Current time is 10:12
    Eating/drinking takes 15 minutes
    Current time is 10:27
    Visiting the toilet takes 10 minutes
    Current time is 10:37
    Repairing takes 41 minutes
    Current time is 11:18
    Eating/drinking takes 15 minutes
    Current time is 11:33
    Visiting the toilet takes 10 minutes
    Current time is 11:43
    Repairing takes 15 minutes
    Current time is 11:58
    Eating/drinking takes 15 minutes
    Current time is 12:13
    Visiting the toilet takes 10 minutes
    Current time is 12:23
    Repairing takes 19 minutes
    Current time is 12:42
    Eating/drinking takes 15 minutes
    Current time is 12:57
    Visiting the toilet takes 10 minutes
    Current time is 13:07
    Repairing takes 112 minutes
    Current time is 14:59
    Eating/drinking takes 15 minutes
    Current time is 15:14
    Visiting the toilet takes 10 minutes
    Current time is 15:24
    Repairing takes 127 minutes
    Current time is 17:31
    Eating/drinking takes 15 minutes
    Current time is 17:46
    Visiting the toilet takes 10 minutes
    Current time is 17:56
    Repairing takes 46 minutes
    Current time is 18:42
    */
}

public void simulateOneDayAndStopOnTimeTest() {
    /*Car c1=new Car("Toyota", "Prius", 'p', 1800);
    Car c2=new Car("Citroen", "C5 Tourer", 'd', 2300);
    Car c3=new Car("Toyota", "Prius", 'd', 2050);
    Bicycle b1=new Bicycle("MesserSchmidt", "Targa", false);
    Car c4=new Car("MesserSchmidt", "Targa", 'p', 950);
    Car c5=new Car("Hummer", "XL", 'd', 5600);
    Car c6=new Car("BMW", "R3", 'd', 6350);
    Car c7=new Car("Citroen", "C5 Tourer", 'd', 2300);

    GarageSimulation gs=new GarageSimulation();
    gs.addVehicle(c1);
    gs.addVehicle(c2);
    gs.addVehicle(c3);
    gs.addVehicle(b1);
    gs.addVehicle(c4);
    gs.addVehicle(c5);
    gs.addVehicle(c6);
    gs.addVehicle(c7);

    gs.simulateOneDayAndStopOnTime();
    */

    /* Expected outcome
    Eating/drinking takes 15 minutes
    Current time is 8:15
    Visiting the toilet takes 10 minutes
    Current time is 8:25
    Repairing takes 36 minutes
    Current time is 9:01
    Eating/drinking takes 15 minutes
    Current time is 9:16
    Visiting the toilet takes 10 minutes
    Current time is 9:26
    Repairing takes 46 minutes
    Current time is 10:12
    Eating/drinking takes 15 minutes
    Current time is 10:27
    Visiting the toilet takes 10 minutes
    Current time is 10:37
    Repairing takes 41 minutes
    Current time is 11:18
    Eating/drinking takes 15 minutes
    Current time is 11:33
    Visiting the toilet takes 10 minutes
    Current time is 11:43
    Repairing takes 15 minutes
    Current time is 11:58
    Eating/drinking takes 15 minutes
    Current time is 12:13
    Visiting the toilet takes 10 minutes
    Current time is 12:23
    Repairing takes 19 minutes
    Current time is 12:42
    Eating/drinking takes 15 minutes
    Current time is 12:57
    Visiting the toilet takes 10 minutes
    Current time is 13:07
    Repairing takes 112 minutes
    Current time is 14:59
    Eating/drinking takes 15 minutes
    Current time is 15:14
    Visiting the toilet takes 10 minutes
    Current time is 15:24
    Repairing takes 127 minutes
    Current time is 17:31
    Exception: Closing time...
    Still 3 activities pending

    */

}

}

GarageSimulation.java
  import java.util.*;

public class GarageSimulation{
private int time;
private static final int START_HOUR=8;
private static final int MIN_IN_HOUR=60;
private static final int TOTAL_MINUTES=480; 
private ArrayList<Vehicle> dayplan;
private EatAndDrink eatdrink;
private Toilet toilet;
private RepairVehicle repair;

public GarageSimulation() {

  ArrayList<Vehicle> dayplan = new ArrayList<Vehicle>();

}

public void addVehicle(Vehicle vehicle) {
  // add eat and drink to dayplanning

  // IT GOES WRONG HERE 

  dayplan.add();// don't know which arguments or how I can add an activity to the arraylist

  // add toilet to dayplanning

  // add repair vehicle to dayplanning

}

public void simulateOneDay() {
  // No clue what im doing here 
  int i = 0;
  while(dayplan.size() > i) {
  // get the activity
  System.out.println(dayplan.get(i));
  System.out.println("Current time is "+showCurrentTime());
  // show the activity and update time

  // Print the current time

  i++;
  }
}

private String showCurrentTime() {
  int hour=START_HOUR+time/MIN_IN_HOUR;
  int min=time%MIN_IN_HOUR;
  if (min<10) 
  return hour+":0"+min;
  else
  return hour+":"+min;
}
}

EatAndDrink.java
public class EatAndDrink implements Activity{
public int showActivityAndReturnTime() {
    System.out.println("Eating/drinking takes 15 minutes");
    return 15;
}
 }

厕所.java中的同样狗屎

RepairVehicle.java
public class RepairVehicle implements Activity{
private int time;

public RepairVehicle(Vehicle vehicle) {
  Car c = (Car) vehicle;

  if( vehicle instanceof Car){

  //tijd reperatie auto
  if( c.getFueltype() == 'd'){
  time = (c.getContents()/50) * 2;
  }else{
        time = (c.getContents()/50);
  }

  }else if( vehicle instanceof Bicycle){

  time = 15;
  }

}

@Override
public int showActivityAndReturnTime() {
  System.out.println("Repairing takes "+time+" minutes");
  return time;
}
}

接口(interface)Activity.java
public interface Activity
{

public int showActivityAndReturnTime(); 
}

汽车.java
public class Car extends Vehicle {

private char fueltype;
private int contents;

public Car(String brand,String modelname,char fueltype,int contents){
  super(brand,modelname);

  if(fueltype == 'd' || fueltype == 'p'){
  this.fueltype = fueltype;
  }
  if( contents >= 0 ){
  this.contents = contents;
  }else{
  this.contents = 1000;
  }

}

public char getFueltype(){

  return fueltype;
}

public int getContents(){

  return contents;
}

public boolean equals(Object o){
  if (this == o){
  return true;
  }
  if(!( o instanceof Car)){
  return false;
  }    

  Car c = (Car) o;

  return(
  c.brand.equals(this.brand) &&
  c.modelname.equals(this.modelname) 
  );

}

}

我认为 Bicycle.java 和 Vehicle.java 并不是真的需要在这里展示。

希望你们中的一些人可以帮助我!提前致谢!!!!!

最佳答案

dayplan被声明为

private ArrayList<Vehicle> dayplan;

你调用add没有任何参数的方法。
dayplan.add();

这就是导致编译错误的原因。

你需要给它一个参数,vehicle .
dayplan.add(vehicle);

关于Java问题;无法将 Activity 添加到 ArrayList<???> 需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21209426/

相关文章:

java - 使用 android 库时无法解析符号 'validator'

java - 什么是XML中的延迟节点扩展?

javascript - Array.prototype.copyWithin() 存在哪些用例?

java - 它是否使用 "super"在重写方法中调用 Overriden 方法,我们是否在调用中进行重载?

java - 使用索引迭代 arraylist 中的项目

java - 如何在 Eclipse 4 的默认位置获取 RCP 应用程序中的工具栏元素?

java - android Wolfram alpha 异常下载网址

ruby - 简化 Ruby 方法 : leave unnecessary variables off

java - 为什么我无法让组合框显示我的 ArrayList?

android - 从共享首选项数据填充列表项