Java创建实例数组

时间:2013-12-17 10:52:17

标签: java

我的代码存在问题

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; }

以上是我的缩短代码。如果不清楚请指出我在哪里。

基本上我创建了一个实例数组。然后我将设置数据。

假设joinDatenumberOfPostcustomerReviewCountsafeTag,最后numberOfSellers没有问题。

我遇到的问题是将数据设置为实例。哪个是setJoinDatesetNumberOfPostsetCustomerReviewsetSafeTag。有人可以帮我在这里发现我的错误吗?

当我执行程序时,它会给我这个错误

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0
at fyp.draft.pkg1.Design.actionPerformed(Design.java:247)

4 个答案:

答案 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();
 }