Exception in thread "main" java.lang.ArrayStoreException什么意思???
publicinterfaceIterator{booleanhasNext();Objectnext();}publicclassObjectSet{privateOb...
public interface Iterator {
boolean hasNext();
Object next();
}
public class ObjectSet {
private Object[] objects;
private int next = 0;
public ObjectSet(int size){
objects = new ObjectSet[size];
}
public void add(Object element){
if(next < objects.length)
objects[next++] = element;
}
private class InternalIterator implements Iterator{
int index;
public InternalIterator(){
index = 0;
}
@Override
public boolean hasNext() {
return (index < objects.length);
}
@Override
public Object next() {
if (hasNext()) {
return objects[index++];
}
return null;
}
}
public Iterator getIterator(){
return new InternalIterator();
}
}
public class ObjectSetDemo {
public static void main(String[] args){
ObjectSet set = new ObjectSet(10);
for(int i = 1; i <= 10; i++){
set.add(i);
}
Iterator iterator = set.getIterator();
while (iterator.hasNext()) {
System.out.println(iterator.hasNext());
}
}
}
出现的异常是:Exception in thread "main" java.lang.ArrayStoreException:java.lang.Integer
at experiment_4.ObjectSet.add(ObjectSet.java:13)
at experiment_4.ObjectSetDemo.main(ObjectSetDemo.java:7)
我要求的是:出现这个异常的原因、解决办法。回答得好的话,可以适当加分 展开
boolean hasNext();
Object next();
}
public class ObjectSet {
private Object[] objects;
private int next = 0;
public ObjectSet(int size){
objects = new ObjectSet[size];
}
public void add(Object element){
if(next < objects.length)
objects[next++] = element;
}
private class InternalIterator implements Iterator{
int index;
public InternalIterator(){
index = 0;
}
@Override
public boolean hasNext() {
return (index < objects.length);
}
@Override
public Object next() {
if (hasNext()) {
return objects[index++];
}
return null;
}
}
public Iterator getIterator(){
return new InternalIterator();
}
}
public class ObjectSetDemo {
public static void main(String[] args){
ObjectSet set = new ObjectSet(10);
for(int i = 1; i <= 10; i++){
set.add(i);
}
Iterator iterator = set.getIterator();
while (iterator.hasNext()) {
System.out.println(iterator.hasNext());
}
}
}
出现的异常是:Exception in thread "main" java.lang.ArrayStoreException:java.lang.Integer
at experiment_4.ObjectSet.add(ObjectSet.java:13)
at experiment_4.ObjectSetDemo.main(ObjectSetDemo.java:7)
我要求的是:出现这个异常的原因、解决办法。回答得好的话,可以适当加分 展开
3个回答
展开全部
你好,当你试图将错误类型的对象存储到一个对象数组时抛出的异常。例如,以下代码可生成一个 ArrayStoreException:
Object x[] = new String[3];
x[0] = new Integer(0);
就这么简单。
怎么避免呢?关键就是元素的内容要正确。
你看你的代码:
private Object[] objects;
....
objects = new ObjectSet[size];
很明显这里用父类的引用指向了子类的实现。
那么给每个元素赋值的时候只能付这个子类对象及这个子类的后代。
你又将OBJECT赋值给它,那么就必须向下转型。
Object x[] = new String[3];
x[0] = new Integer(0);
就这么简单。
怎么避免呢?关键就是元素的内容要正确。
你看你的代码:
private Object[] objects;
....
objects = new ObjectSet[size];
很明显这里用父类的引用指向了子类的实现。
那么给每个元素赋值的时候只能付这个子类对象及这个子类的后代。
你又将OBJECT赋值给它,那么就必须向下转型。
展开全部
1、NullPointerException是 java应用程序中最常见的一种异常,空指针异常。
2、空指针异常是一种运行时异常,发生在调用对象的方法或者属性的时候。
3、当对象为null时,调用其任何方法均会报NullPointerException。
4、最好的解决办法是在调用一个对象或者集合类时,先判断当前对象是否为null,为null进入其他的业务处理流程 。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
只知道是数组异常。你检查一下你的object数组。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询