Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.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 数组列表上的方法_Java - Fatal编程技术网

Java 数组列表上的方法

Java 数组列表上的方法,java,Java,我正在学习我的ArrayLists知识,我有一个问题 我有4个类,一个人超类,雇员子类,学生子类和雇员的经理子类 我不明白的是如何在peopleArrayList上使用方法m.setBonus。我知道我可以将对象拆分为单独的数组,但我不确定这是否是答案 我目前在Manager m:Manager部分中遇到一个错误,因为我假设没有对Manager的引用 我目前在测试类中有此代码 public static void main(String[] args){ ArrayList<Person

我正在学习我的
ArrayLists
知识,我有一个问题

我有4个类,一个人超类,雇员子类,学生子类和雇员的经理子类

我不明白的是如何在people
ArrayList
上使用方法
m.setBonus
。我知道我可以将对象拆分为单独的数组,但我不确定这是否是答案

我目前在
Manager m:Manager
部分中遇到一个错误,因为我假设没有对Manager的引用

我目前在测试类中有此代码

public static void main(String[] args){

ArrayList<Person> people = new ArrayList<Person>();

people.add(new Employee("Tom", 4000, 1990, 3, 10));
people.add(new Pupil("Dick", "Comp Sci"));
people.add(new Employee("Harry", 4000, 1990, 3, 10));
people.add(new Manager ("Dan", 5000, 1990, 10, 1));

for (Manager m : manager)
{
    m.setBonus(5000);
}

for (Person p : people){

    System.out.println(p.getDetails());
}

}

}
publicstaticvoidmain(字符串[]args){
ArrayList people=新建ArrayList();
添加(新员工(“Tom”,40001990,3,10));
添加(新学生(“迪克”、“综合科学”);
添加(新员工(“Harry”,4000,1990,3,10));
添加(新经理(“Dan”,50001990,10,1));
经理(m:经理)
{
m、 挫折(5000);
}
用于(人员p:人员){
System.out.println(p.getDetails());
}
}
}
如果这真的很简单,我很抱歉。我只是在网上找不到任何东西


干杯

您从未声明一个名为
manager
的经理列表,因此它不知道如何处理它

您需要执行以下操作:

for (Person p : people)
{
    if (p instanceof Manager) {
        ((Manager)p).setBonus(5000);
    }
}

这将检查p类以确认它是否为子类Manager。

您从未声明名为
Manager
的管理器列表,因此它不知道如何处理它

您需要执行以下操作:

for (Person p : people)
{
    if (p instanceof Manager) {
        ((Manager)p).setBonus(5000);
    }
}

这将检查p类以确认它是否为Manager子类。

Manager arrayList不存在,请在现有Person循环中进行检查

public static void main(String[] args) {
    ArrayList<Person> people = new ArrayList<Person>();

    people.add(new Employee("Tom", 4000, 1990, 3, 10));
    people.add(new Pupil("Dick", "Comp Sci"));
    people.add(new Employee("Harry", 4000, 1990, 3, 10));
    people.add(new Manager ("Dan", 5000, 1990, 10, 1));

    // manager arrayList does not exist
    //for (Manager m : manager)
    //{
    //  m.setBonus(5000);
    //}


    for (Person p : people){
        //Do this instead
        if (p instanceof Manager) {
            ((Manager) p).setBonus(5000);
        }

        System.out.println(p.getDetails());
    }
}
publicstaticvoidmain(字符串[]args){
ArrayList people=新建ArrayList();
添加(新员工(“Tom”,40001990,3,10));
添加(新学生(“迪克”、“综合科学”);
添加(新员工(“Harry”,4000,1990,3,10));
添加(新经理(“Dan”,50001990,10,1));
//管理器arrayList不存在
//经理(m:经理)
//{
//m.setBonus(5000);
//}
用于(人员p:人员){
//改为这样做
if(管理器的p实例){
(经理)p.挫折(5000);
}
System.out.println(p.getDetails());
}
}

manager arrayList不存在,请在现有人员循环中进行检查

public static void main(String[] args) {
    ArrayList<Person> people = new ArrayList<Person>();

    people.add(new Employee("Tom", 4000, 1990, 3, 10));
    people.add(new Pupil("Dick", "Comp Sci"));
    people.add(new Employee("Harry", 4000, 1990, 3, 10));
    people.add(new Manager ("Dan", 5000, 1990, 10, 1));

    // manager arrayList does not exist
    //for (Manager m : manager)
    //{
    //  m.setBonus(5000);
    //}


    for (Person p : people){
        //Do this instead
        if (p instanceof Manager) {
            ((Manager) p).setBonus(5000);
        }

        System.out.println(p.getDetails());
    }
}
publicstaticvoidmain(字符串[]args){
ArrayList people=新建ArrayList();
添加(新员工(“Tom”,40001990,3,10));
添加(新学生(“迪克”、“综合科学”);
添加(新员工(“Harry”,4000,1990,3,10));
添加(新经理(“Dan”,50001990,10,1));
//管理器arrayList不存在
//经理(m:经理)
//{
//m.setBonus(5000);
//}
用于(人员p:人员){
//改为这样做
if(管理器的p实例){
(经理)p.挫折(5000);
}
System.out.println(p.getDetails());
}
}

非常感谢,我会去读这本书的instanceof部分您可能需要将该引用投射到
经理
实例-我怀疑
学生
是否获得奖金。这是一个解决方案,可能是原始海报设置问题的唯一解决方案,但每当我看到大量使用instanceof时,我担心整体设计可能会被破坏,“也许有更好的方法来解决潜在的问题。”我完全同意。我已经使用Java大约7年了,我想不出有哪一个程序是在我脑海中使用的
instanceof
。我很确定我大概一年前才知道这件事。非常感谢,我会去读这本书的“实例”部分:)您可能需要将该引用投射到
经理
实例-我怀疑
学生
是否获得奖金。这是一个解决方案,可能是原始海报设置问题的唯一解决方案,但每当我看到大量使用instanceof时,我担心整体设计可能会被破坏,“也许有更好的方法来解决潜在的问题。”我完全同意。我已经使用Java大约7年了,我想不出有哪一个程序是在我脑海中使用的
instanceof
。我很确定我大概一年前才知道。