如何用Java编写Task and Todo程序?

问题描述

我想制作一个Task and Todo程序。我已经在单独的类中编写了代码。 class Task将代表一个需要完成的项目。

public class Task {
private String task;
private int priority;
private int workload;

public Task(String task,int priority,int workload) {
    this.task = task; // Description of the task
    this.priority = priority; // 1 = very important,2 = important,3 = unimportant,4 = after learn
                              // Portuguese
    this.workload = workload; // amount of time to complete the task
}

public String getPriority(String translation) {
    if (priority == 1) {
        translation = "very important";
    }
    if (priority == 2) {
        translation = " important";
    }
    if (priority == 3) {
        translation = "unimportant";
    }
    if (priority == 4) {
        translation = " after learn German";
    }
    return translation;
}

public String toString() {
    String translation = "";
    return task + " takes " + workload + " minutes and has priority " + getPriority(translation);
}
}

class Todo将组织所有任务。

public class Todo {
ArrayList<String> Todo = new ArrayList<>();

public void addTask(String description,int minutes) {
    if (priority > 4 || priority < 1) {
        System.out.println(description + " has invalid priority ");
    }
    if (minutes < 0) {
        System.out.println(description + " has invalid workload ");
    }
    Todo.add(Task.class.getName());
}

public void getTodoList() {
    Todo.forEach(item->System.out.println(Task.class.getName().toString()));
}

public void print() {
    System.out.println("Todo:");
    System.out.println("-----");
    getTodoList();
    if (Todo == null) {
        System.out.println("You're all done for today! #TodoZero");
    }
}

public static void main(String[] args) {
    Task task;
    Todo todo;
    todo = new Todo();
    todo.addTask("Go to gym",2,60);
    todo.addTask("Read book",1,45);
    todo.print();
    System.out.print("");
}
}

输出:

Todo:
-----
Task
Task

但是问题是Todo.print() method无法打印已添加到Todo中的任务列表。预期的输出应如下所示:

Go to gym takes 60 minutes and has priority important
Read book takes 45 minutes and has priority very important

解决方法

您的输出正确。您没有将任务添加到列表中,而是添加了类名。在todo.add()

中调用Task的构造函数 ,

在您的Todo类中需要进行以下更改以获得所需的输出

   ArrayList<Task> Todo = new ArrayList<>(); // ArrayList of Tasks

     public void addTask(String description,int priority,int minutes) {
          if (priority > 4 || priority < 1) {
             System.out.println(description + " has invalid priority ");
          }

          if (minutes < 0) {
             System.out.println(description + " has invalid workload ");
         }
         Todo.add(new Task(description,priority,minutes));   // Add Task
     }

     
     public void getTodoList() {
        // Iterate over Todo ArrayList
         for (Task task : Todo){
               System.out.println(task);
            }
     }


相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...