Java导入包不会工作[编译器抛出误导性错误]

时间:2015-08-05 12:31:31

标签: java import

当我尝试导入另一个包时,会抛出一些奇怪的错误。 我正在使用eclipse并导入包humanBeeings,如下所示:
enter image description here

错误说:语法错误,@ expected

我不知道怎么解决这个问题有人有想法吗? 我已将@放在几个地方,但似乎没有任何工作

列表Collection Class的代码如下:

package listCollection;
import humanBeeings.Human;
import java.util.LinkedList;
import java.util.List;

    public class listCollection {
        List<Human> list = new LinkedList <Human>(); // <> zur spezifizierung der Objektklasse, nur Objekte dieser Klasse dürfen in die Liste
        list.add(new Human("Dennis", 20));
        list.add(new Human("vladimir", 33));
        for (Human h: list) { // für das Objekt der Objektklasse Human in der List
            System.out.println(h.getName());
        }
    }

Human Class的代码看起来像这样..

package humanBeeings;

    public class Human {
        // Objekteigenschaften
        private String name;
        private int age;
        // Konstrucktoren
        public Human(String name, int age){
            this.name = name;
            this.age = age;
        }
        // Accessoren/Methoden
        public void setName(String name){
            this.name = name;
        }
        public String getName(){
            return this.name;
        }
        public void setAge(int age){
            this.age = age;
        }
        public int getAge(){
            return this.age;
        }
        //Main
        public static void main(String[] args){
            // Some actions here...
        }
    }

2 个答案:

答案 0 :(得分:5)

您编写的语句不会出现在方法中。将它们放在方法中,如下所示:

public void testMyListCollection() {
    List<Human> list = new LinkedList <Human>();
    // etcetera
}

Java编译器必须密切关注Java的语法。在这个特定的例子中,您将语句放在类体内,而不是放在方法体内。类主体中允许的唯一类型的语句是“赋值”,即当您为实例变量赋值时:

public class Example {
    private int myValue = 3 + 3; // A statement inside a class body,
                                 // because it is part of an assignment
}

答案 1 :(得分:0)

我不确切地知道您希望班级做什么,但是这会在打电话时打印您的列表...

package listCollection;

import humanBeeings.Human;
import java.util.List;
import java.util.LinkedList;

public class listCollection {

    public static void printHumans() {
        List<Human> list = new LinkedList();
        list.add(new Human("Dennis", 20));
        list.add(new Human("vladimir", 33));
        for (Human h : list) {
            System.out.println(h.getName());
        }
    }
}