[英]Java issue; can't add activities to an ArrayList<???> Help needed
我正在為星期一准備考試,但沒有答案。 到目前為止,我做得不錯,但現在我被困住了。 我不知所措。 在互聯網上搜索了很長一段時間,但我想念一個小東西。
也許你們可以幫幫我嗎?
問題:我需要將活動放置在日程安排ArrayList <...>中並打印出來,但我不知道如何執行此操作。
我試過了ArrayList Integers String我不知道* *我是怎么做到的:P目標在GarageSimulation中運行SimulationOneDay()。
測試器
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;
}
}
在Toilet.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;
}
}
接口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);
問題出在
dayplan.add();
您應該添加車輛
因此將其更改為
dayplan.add(vehicle);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.