创建方法并返回对象

时间:2018-11-18 22:35:06

标签: java

我对自己的这项任务非常执着,这是任务的最后一部分,已经超出了我的范围。我们从此代码开始。

x button

我们被告知要创建一个名为createEmployeeFromFile();的方法。在这种方法中,我们将使用Scanner从.txt文件中读取数据,并使用该数据创建Employee对象。现在我对两件事感到困惑。首先,我应该使用的方法类型以及如何使用.txt文件中的数据创建对象。这是我们第一次这样做,这对我来说很难。 Employee1可以正常工作,但是在尝试创建我的方法时,我陷入了创建它的方式。

这是我目前的粗略代码。

import java.util.*;
import java.io.*;

public class TestEmployee2
{
  public static void main(String[] args) throws IOException
  {
    Employee e1 = new Employee2(7, "George Costanza");

    e1.setDepartment("Front Office");
    e1.setPosition("Assistant to the Traveling Secretary");
    e1.setSalary(50000.0);
    e1.setRank(2);

    e1.displayEmployee();

    //Employee e2 = createEmployeeFromFile();
    //e2.displayEmployee();

  }

}

我不希望得到有人将我指向正确方向的答案。任何帮助将不胜感激。

这是我主班的代码。

import java.util.*;
import java.io.*;

public class TestEmployee2
{
  public static void main(String[] args) throws IOException
  {
    EckEmployee2 e1 = new EckEmployee2(7, "George Costanza");
    EckEmployee2 e2 = createEmployeeFromFile();

    e1.setDepartment("Front Office");
    e1.setPosition("Assistant to the Traveling Secretary");
    e1.setSalary(50000.0);
    e1.setRank(2);

    e2.setNumber();
    e2.setName();
    e2.setDepartment();
    e2.setPosition();
    e2.setSalary();
    e2.setRank();

    e1.displayEmployee();
    e2.displayEmployee();
  }

  createEmployeeFromFile(){
    File myFile = new File("employee1.txt");
    Scanner kb = new Scanner(myFile);

 }
}

为了使事情更清楚,这里是方向

  

在TestEmployee2中创建一个名为createEmployeeFromFile()的方法,该方法将从文件中读取数据并创建,填充并返回Employee对象。将从中读取的文件称为employee1.txt。在方法中硬编码文件名。该文件包含员工的编号,姓名,部门,职位,薪水和职级。创建一个Scanner对象,并使用Scanner类的方法读取文件中的数据,并使用此数据创建Employee对象。最后返回雇员对象。

2 个答案:

答案 0 :(得分:0)

在Java中,要从方法返回值,请将该对象类型添加到方法签名中,如下所示,简而言之,java方法签名如下:

'修饰符(公共,私有,受保护)''返回类型(void / nothing,int,long,Object等...''methodName(命名方法)''参数(任何对象或基元作为参数

如果您有一个雇员构造函数来解析输入文本,并且假设数据是用定界符分割的,则下面的方法将起作用,可以使用String.split(splitString);。其中splitString是用于拆分数据的字符,即逗号“,”。

public EckEmployee2 getEmployee()
{
    try
    {
        /**
         * This will print where your java working directory is, when you run the file
         *
         */
        System.out.println(System.getProperty("user.dir"));

        /**
         * Gets the file
         */
        File myFile = new File("employee1.txt");
        /**
         * Makes the scanner
         */
        Scanner kb = new Scanner(myFile);

        /**
         * A list to store the data of the file into
         */
        List<String> lines = new ArrayList<>();

        /**
         * Adds all the lines in the file to the list "lines"
         */
        while (kb.hasNext())
        {
            lines.add(kb.next());
        }

        /**
         * Now that you have the data from the file, assuming its one line here, you can parse the data to make
         * your "Employee"
         */

        if (lines.size() > 0)
        {
            final String line = lines.get(0);
            return new EckEmployee2(line);
        }
    }
    /**
     * This is thrown if the file you are looking for is not found, it either doesn't exist or you are searching
     * in the wrong directory.
     */
    catch (FileNotFoundException e)
    {
        e.printStackTrace();
    }
    /**
     * Return null if an exception is thrown or the file is empty
     */
    return null;
}

答案 1 :(得分:0)

首先,您的方法createEmployeeFromFile()必须使用 2个参数,这是一个Scanner对象才能读取输入,并且您将通过使用{ File

返回类型Scanner,因为该方法创建了一个Empolyee2实例,并且必须将其返回。

现在,我给了你一些倡议。 轮到您阅读有关Employee2对象和Scanner对象的更多信息。

从文本文件中读取对象的属性很容易,然后使用带有属性的构造函数创建实例并返回它!

希望这会有所帮助。