我的代码存在问题
Seller[] seller = new Seller[numberOfSellers]; // Declared global
// Some operations here
seller[i].setJoinDate(joinDate);
seller[i].setNumberOfPost(numberOfPost);
seller[i].setCustomerReview(customerReviewCount);
seller[i].setSafeTag(safeTag);
然后我有这个方法的卖家类
public void setJoinDate( String joinDate ) { this.joinDate = joinDate; }
public void setNumberOfPost( int numberOfPost ) { this.numberOfPost = numberOfPost; }
public void setCustomerReview( int customerReview ) { this.customerReview = customerReview; }
public void setSafeTag( String safeTag ) { this.safeTag = safeTag; }
以上是我的缩短代码。如果不清楚请指出我在哪里。
基本上我创建了一个实例数组。然后我将设置数据。
假设joinDate
,numberOfPost
,customerReviewCount
,safeTag
,最后numberOfSellers
没有问题。
我遇到的问题是将数据设置为实例。哪个是setJoinDate
,setNumberOfPost
,setCustomerReview
,setSafeTag
。有人可以帮我在这里发现我的错误吗?
当我执行程序时,它会给我这个错误
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0
at fyp.draft.pkg1.Design.actionPerformed(Design.java:247)
答案 0 :(得分:2)
在运行代码时,numberOfSellers似乎没有设置或等于零。 例如:
public static int b;
public static void main(String[] args) {
Double[] d = new Double[b];
d[5].doubleValue();
}
导致
线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:5
答案 1 :(得分:1)
由于索引等于{1}来自提供的异常,因此您的变量0
似乎也等于numberOfSellers
。这意味着,您的数组0
始终为空。
BTW Java中没有术语seller
。你的意思是你的数组是Class的静态字段还是只是对象变量(字段)?
答案 2 :(得分:0)
我认为您的号码numberOfSellers
已初始化为0
,如错误所示。
您可以尝试以下代码;
int numberOfSellers = 3;
Seller[] seller = new Seller[numberOfSellers]; // Declared global
for(int i = 0 ; i<seller.length ; i++){
seller[i] = new Seller();
seller[i].setJoinDate(joinDate);
seller[i].setNumberOfPost(numberOfPost);
seller[i].setCustomerReview(customerReviewCount);
seller[i].setSafeTag(safeTag);
}
答案 3 :(得分:-1)
您需要初始化数组:
for(int i=0;i<numberOfSellers;i++)
{
seller[i] = new seller();
}