创建要在Constructor中传递的对象数组

时间:2015-04-07 15:56:48

标签: java

作为Java的新手,我发现为我的目的提出一个简洁的代码有点困难。

问题是,

class ElementID {

  String name = "";
  String value = "";

  public ElementID (String name, String value) {
   this.name = name;
   this.value = value;
  }
}

class HeaderID {

  String ID = "";
  Date cal;
  ElementID[] elementID;

  public HeaderID (String ID, Calender cal, ElementID[] elemID) {
    this.ID = ID;
    this.cal = cal;
    this.elementID = elemID;
   }
}

现在在函数内的另一个类中,我需要实例化HeaderID类。

这就是我到目前为止所做的,但它并没有奏效。我们面临的问题是创建一个ElementID单个数组。

ElementID[] e = new ElementID[1];
e[0] = new ElementID("NAME", "VALUE");

// Error at this line
HeaderID ht = new HeaderID("ID", new Date(), e); 

1 个答案:

答案 0 :(得分:3)

您无法直接从Date投射到Calendar

你宣布:

public HeaderID (String ID, Calender cal, ElementID[] elemID) {

你试着打电话:

HeaderID ht = new HeaderID("ID", new Date(), e); //Error at this line
//                               ^ this is expecting a Calendar Instance

选项A:您可以更改声明

public HeaderID (String ID, Date date, ElementID[] elemID) {

如果您这样做,请使用您的实际通话:

HeaderID ht = new HeaderID("ID", new Date(), e);

选项B :更改发送到实际声明的内容:

// create new calendar instance
Calendar cal = Calendar.getInstance();

// put desired Date
cal.setTime(new Date());

// make call with correct variable types
HeaderID ht = new HeaderID("ID", cal, e);