我如何返回类类型对象的数组?

时间:2013-09-17 17:51:11

标签: java arrays object return

...重新编辑

    public EventData getEventDetails(String evtId, String Status) {
    //do some data selection here.
    return evData1;
    }

    public EventData[] getAdminAuthEvtDetails(String evtId, String Status) {
    String eId=evtId;
    String status=Status;
    EventData[] evData=new EventData[2];
    EventData[0] evData=getEventDetails(eId,"V");
    EventData[1] evData=getEventDetails(eId,"M");
    return evData;
    }

EventData是我的java数据类。在那里我设置了getter和setter。我想调用getEventDetails方法两次调用一个状态,另一个调用请求ID,并将evData设置为一个数组。在这里有一个错误无法将数据传入EventData [0]和EventData [1]。是否有任何错误调用我的getEventDetails方法?

最后我得到了正确的代码。

    EventData[] evData=new EventData[2];
    evData[0]=getEventDetails(eId,"V");
    evData[1]=getEventDetails(eId,"M");
    return evData;

3 个答案:

答案 0 :(得分:3)

在这两种方法中,您必须返回一个对象而不是Type

第一种方法

public EventData getEventDetails(String evtId, String Status) {
    return new EventData(evtId, status);//don't know how is you constructor of EventData, but its just a smart guess. the idea is to create an object
}

和第二种方法return eData;

答案 1 :(得分:0)

我认为您还需要更新getEventDetails方法。 EventDataclass但是您需要返回通常通过调用构造函数class创建的new EventData()实例。

否则,ay89是正确的getAdmin...应该返回eData

答案 2 :(得分:0)

从概念上讲,这是正确的。您只是遇到了其他人提到的一些语法问题(比如返回变量而不是类)。

否则,还需要注意一些其他事项:

  • 您可能希望对“状态”使用小写“s”,因为传统上,变量不应以大写字母开头。
  • 您可能不需要将evtId重新声明为eid。您可以直接使用evtId(以及错误的状态)变量。
  • 就个人而言,我喜欢调用getEventDetails(...)方法更像createEventDetails(...),因为它更能说明该方法的功能。 “获取”总是意味着抓取而不是创造给我。

只是我的2c