2015-04-07 59 views
-2

作为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); 
+8

'Date' VS'日历'?如果您阅读并发布错误,这将有所帮助。 –

+1

请发布堆栈跟踪。 –

回答

3

你不能直接从DateCalendar投:

您宣布:

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); 
+0

问题不在于日历或日期。请参阅更新的问题。我们得到的问题是关于ElementID – donguy76

+1

'ElementID [] e = new ElementID [1];没有问题。 e [0] =新的ElementID(“NAME”,“VALUE”);'这部分是正确的......问题是当你试图在日历中放入日期... –

+1

@ donguy76问题**是**'日历'与'日期'。此外,我建议你使用'Date'而不是'Calendar'字段,或者甚至更好地使用来自Java 8的新时间api。 –

相关问题