我对这个程序有一个小问题。这是一本约会书,其目的是能够添加联系人和活动。
这是我的代码的第一部分,也是我遇到问题的部分:
String aux = " ";
String aux2 = " ";
long aux3 = 0;
Arraylist <Person> cole1 = new Arraylist();
do{
System.out.println("Welcome");
System.out.println("- Book");
System.out.println("1. Add contact");
System.out.println("2. See contacts");
System.out.println("3. Remove contacts");
switch(Integer.parseInt(teclado.readLine())){
case 1:
for(int i = 0; i<cole1.size();i++){
System.out.println("Write the name");
aux = teclado.readLine();
System.out.println("Write the email");
aux2 = teclado.readLine();
System.out.println("Write the phone number");
aux3 = Integer.parseInt(teclado.readLine());
cole1.add(new Person(aux, aux2, aux3));
}
break;
default:
System.out.println("error");
break;
}
}while(true);
这是我的人类:
public class Person {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public float getNum() {
return num;
}
public void setNum(long num) {
this.num = num;
}
private String name;
private String email;
private long num;
public Persona(String n, String e, long nu){
this.name=n;
this.email=e;
this.num=nu;
}
}
此部分应该能够创建具有姓名,电话和电子邮件属性的新人。问题是,当我在交换机中按1添加选项时,我收到以下错误:
Exception in thread "main" java.lang.UnsupportedOperationException: Not supported yet.
at agenda.Arraylist.size(Arraylist.java:15)
at agenda.AgendaTest.main(AgendaTest.java:40)
C:\Users\melis\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 2 seconds)
我无法弄清楚它是否是逻辑或语法问题。我和其他有类似问题的人一起读过其他一些问题。不同的是,所有这些都显然使用了Arrays.asList属性,如果我理解正确的话,Arrays.asList不支持添加/删除操作。
关于出了什么问题的任何想法?
提前致谢!对不起,如果我的英语不好。
答案 0 :(得分:4)
问题是您已经创建了自己的Arraylist
课程(全名agenda.Arraylist
),而您的课程没有实施add
操作。这从堆栈跟踪中可以清楚地看出。
我猜你的实现是这样的:
package agenda;
import java.util.AbstractList;
public class Arraylist<T> extends AbstractList<T> {
...
// No override for `add(<T>)`, `add(int, <T>)`, etcetera.
}
如果您没有实现add
方法,则默认实现会抛出该异常。
解决方案:
agenda.Arraylist
课程的实施。Arraylist
。请改用标准java.util.ArrayList
。 (除非你有充分的理由,否则你不应该实现自己的标准类版本。)<强>更新强>
(我没有注意到ArrayList
与Arraylist
之间的微妙差异。我的视力并不像以前那么好。抱歉。我&#39;更新了以上内容......)
您的stacktrace说:
Exception in thread "main" java.lang.UnsupportedOperationException: Not supported yet.
at agenda.Arraylist.size(Arraylist.java:15)
at agenda.AgendaTest.main(AgendaTest.java:40)
C:\Users\melis\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 2 seconds)
第二行说明异常是在一个完全限定名为agenda.Arraylist
的类中抛出的。
注意:
java.util.ArrayList
。Arraylist
的大写是......不同。Arraylist
类和size()
方法。即使您确实导入了真正的ArrayList
课程,也没有任何区别。您没有使用它,因为您使用了错误的简单名称。
我们无法确定您是如何进入当前状态的,但堆栈跟踪不是谎言,您的源代码也不存在。
(如果我猜的话,那就是在某些时候你使用了你的IDE&#34;建议修正&#34;功能来修复未定义的符号编译错误您拼错的Arraylist
标识符。但是您选择了错误的更正...并且您的IDE有助于生成Arraylist
类的骨干实现,而不是将名称拼写为ArrayList
和添加必要的导入。但这只是猜测...)