【问题标题】:Error Message: Int cann't be converted to type错误消息:Int 无法转换为类型
【发布时间】:2016-03-20 11:07:34
【问题描述】:

我对 Java 入门课程非常陌生,我正在寻求帮助以解决我收到的错误。错误消息与实际代码一起发布在下面。有谁知道我为什么会收到这条消息并且无论如何要帮助我?该代码能够编译和运行,但不是在最后打印,而是收到一条弹出错误消息(下面的屏幕截图),但我不明白它的含义或为什么我得到它。任何人都可以帮忙吗?谢谢!

   public class Employee10
{   
    public static void main ( String args[] )
    {
        Employee e1 = new Employee();
        Employee[] arr = new Employee[2];

        int j = 0;

        for ( int i=0; i < 3; i++)
        {
            arr[0] = e1;

            String nameF = Input.getString("Please enter a First Name");
            String nameL = Input.getString("Please enter a Last Name");
            int Number = Input.getInt("Please enter an Employee Number");
            String Street = Input.getString("Please enter a Street address");
            String City = Input.getString("Please enter a City");
            String State = Input.getString("Please enter a State");
            double Zip = Input.getDouble("Please enter a Zip Code"); 
            int Month = Input.getInt("Please enter a Month");
            int Day = Input.getInt("Please enter a Day");
            int Year = Input.getInt("Please enter a Year");

            e1.setNumber(Number);
            e1.setName( new Name(nameF, nameL));
            e1.setAddress(new Address(Street, City, State, Zip));
            e1.setHireDate(new Date(Month, Day, Year));

            System.out.println(e1.getEmployeeString());


            arr[i] = e1;

        }   

        for ( j=0; j < arr.length; j++ )
        {
            System.out.println( arr[j].getEmployeeString() );
        }   
    }
}

错误信息: (不幸的是我无法嵌入照片,所以我只需要输入代码就可以了):

无法启动 Java 类文件“Employee10.class”。 检查控制台是否有可能的错误消息。

这一切意味着什么?我可以查看的控制台在哪里?

【问题讨论】:

  • 您的代码尝试将int 存储到Employee 对象的数组中。你想用arr[j] = j + 1;做什么?
  • 你希望这条线做什么?您不能将数字转换为 Employee 对象,您也不希望能够做到。
  • 编译器抱怨的那一行似乎不在您的代码中?正如下面的答案指出的那样,编写的代码甚至无法编译。如果没有看到实际代码,我不会冒险猜测。尽管我指出您一遍又一遍地重用同一个Employee 对象。你最终会得到一个包含三个相同Employees 的数组。

标签: java arrays class printing


【解决方案1】:

我完全理解你想要做什么, 您正在尝试将下一个员工对象分配给当前员工对象,而您编写的代码在语法上是错误的。

这里是需要修改的代码

arr[j] = ;

需要改成

arr[j] = arr[j+1];

【讨论】:

    【解决方案2】:

    看起来您在发布代码之前已经删除了错误的行。您是否尝试使用该行来遍历 for 循环?如果是这样,那就不需要了。试试:

    for ( j=0; j < arr.length; j++ )
    {
        System.out.println( arr[j].getEmployeeString() );
    }
    

    您还需要更改 arr[0] = e1;到 arr[i] = e1;在您的循环中获取员工信息。您应该在该循环中创建您的 e1 Employee 对象,以便每次都能获得一个新的 Employee。

    【讨论】:

    • 感谢您的建议 Ryan,您的想法有助于我解决编译器问题。你能看看我收到的新错误吗?
    【解决方案3】:

    尝试做这样的事情:

      Employee e2 = new Employee(); 
      arr[j] = e2 ;
    

    因为在arr 中你只能添加Employee 类型的元素;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-28
      • 2015-08-04
      • 1970-01-01
      • 1970-01-01
      • 2021-08-21
      • 2017-10-05
      • 2020-10-17
      相关资源
      最近更新 更多