我尝试使用Generics并在简单的基于文本的UI中实现通用列表,但是我不断收到消息说我无法通过我的方法获得不同的方法等等。 #39;静止。
有人可以指出我做错了吗?
public class GenericList<T> {
List<T> genericList = new ArrayList<T>();
public void addGeneric(T t) {
this.genericList.add(t);
}
public static void initial() {
// USER INPUT AREA
switch(ans.toLowerCase()) {
case "add" : addToList(); break;
case "delete" : deleteFromList(); break;
case "print" : printList(); break;
}
}
public void deleteFromList() {}
public void printList() {
for (int i = 0; i<this.genericList.size(); i++) {
System.out.println(this.genericList.get(i));
}
}
public void addToList() {
// USER INPUT AREA
switch(type.toLowerCase()) {
case "x":
System.out.println("Exitiing...");
initial();
break;
case "string": type="String"; break;
case "int": type="Integer"; break;
case "integer": type="Integer"; break;
}
System.out.println("Enter data...");
String data = s.next();
if (data.equals("x")){
System.out.println("Exiting...");
initial();
}
initial();
}
public static void main(String[] args) {
GenericList g = new GenericList();
initial();
}
}
答案 0 :(得分:0)
你的问题不是泛型。变化
public static void initial() {
到
public void initial() {
并将主要内容改为
public static void main(String[] args) {
new GenericList().initial();
}
答案 1 :(得分:0)
我认为这个问题与您在静态方法中使用非静态方法(即addToList() etc
)这一事实有关(即initial()
)。 @ danben在以下帖子中的答案很好地解释了它:calling non-static method in static method in Java。为了解决这个问题,您可以将其他方法设为静态或使initial()
为非静态方法。