Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA ArrayList类调用另一个类_Java_Arraylist_Call - Fatal编程技术网

JAVA ArrayList类调用另一个类

JAVA ArrayList类调用另一个类,java,arraylist,call,Java,Arraylist,Call,我是这方面的初学者,所以请原谅我的简单问题 我有一个日记课程,有两门课,日记和作业 日记是主要的课程,我需要打电话给Job来做这项工作 下面是这两个类别的代码。班级作业本身就可以很好地工作,我有问题打电话给班级作业来完成作业并返回 类作业添加3个字段 如何从日记中调用Job并返回存储在ArrayList中的结果 import java.util.ArrayList; public class Diary { ArrayList<Job> jobs; String

我是这方面的初学者,所以请原谅我的简单问题

我有一个日记课程,有两门课,日记和作业

日记是主要的课程,我需要打电话给Job来做这项工作

下面是这两个类别的代码。班级作业本身就可以很好地工作,我有问题打电话给班级作业来完成作业并返回

类作业添加3个字段

如何从日记中调用Job并返回存储在ArrayList中的结果

import java.util.ArrayList;

public class Diary {
     ArrayList<Job> jobs;
     String jobName, jobDay, jobPriority;


    public Diary() {
       jobs = new ArrayList<Job>();
    }
}

public class Job {

    public Job(String jobName, String jobDay, String jobPriority) {
        name = jobName;
        day = jobDay;
        priority = jobPriority;
    }

    /**
     * return the varaibles
     */
    public String getName() {
        return name;
    }

    public String getDay() {
        return day;
    }

    public String getPriority() {
        return priority;
    }

    // print the job details
    public String getJob() {
        return name + " on a " + day + " this week and its priority is " + priority;
    }
}

任何想法。

您正在创建两个作业列表-一个用于整个对象,另一个仅用于构造函数。另外,让我们重命名您的列表:

import java.util.ArrayList;

public class Diary {

    ArrayList<Job> jobs;

    public Diary() {
        jobs = new ArrayList<Job>();
    }
}

首先你要记住的是Arraylist是一个对象,它的条目也是一个对象,所以你不能只对这些对象进行字符串化,除非它们有一个toString方法重写

假设你是在日记里给addJob打电话,你实际上并没有对你传递的信息做任何事情。您需要创建一个作业并将其添加到arraylist中

public void addJob(String jobName, String jobDay, String jobPriority) {
    Job job = new Job(jobName, jobDay, jobPriority);
    jobs.add(job);
}
然后我将创建一个新方法来获取所有作业并列出它们,使用您在job类中已经创建的getJob方法

public void listJobs(){
    for(job : jobs) {
        System.out.println(job.getJob());
    }
}

有意义吗?

您是否创建了作业实例?如果要对其调用方法,则必须有一个实例?
Job Job=new Job(名称、日期、优先级),然后您可以将其添加到ArrayList。您需要代码来编排对象。对创建作业进行编码并将其添加到列表中-顺便说一句。数组列表的变量名onejob令人困惑。谢谢,我按照你说的做了,但是Job类仍然没有被激活,我看不到它的输入框,而如果我单独运行Job类,我可以看到它们。旁注:你正在日记::日记()中定义一个新变量不是分配现有的实例变量谢谢danny,这很有帮助,它现在正在工作,我正在尝试打印整个数组内容,看看我是否能做到。嗨danny,再次需要帮助,请查看有关打印arrayList的更新问题,如果可以,请提供帮助。谢谢。由于空间限制,添加了新答案。谢谢Jason,我将尝试您的解决方案。您好,我再次尝试打印ArrayList的内容,但没有成功。我使用了下面的方法,但是他们一直给我内存位置的地址,而不是内容。我用过这样的东西,但似乎什么都不管用//System.out.println(Arrays.toString(jobs));System.out.println(jobs.get(0));System.out.println(jobs.toString()//System.out.println(jobs.toString(jobs))//System.out.println(“+jobs.get(0.jobName));您已经编写了一个方法来获取作业的字符串描述。它被称为getJob()。我用它来打印详细信息(参见我答案的最后代码部分)。
public class Diary {

    ...

    public void printJobs {
        for(Job job : jobs) {
            System.out.println(job.getJob());
    }
}
ArrayList<Job> jobs= new ArrayList<Job>() 
Job job  = new Job(someName, someDay, somePriority);
jobs.add(job);
public void addJob(String jobName, String jobDay, String jobPriority) {
    Job job = new Job(jobName, jobDay, jobPriority);
    jobs.add(job);
}
public void listJobs(){
    for(job : jobs) {
        System.out.println(job.getJob());
    }
}