将方法添加到退出的ArrayList

时间:2014-10-03 04:46:42

标签: java arraylist

我有一个这样的数组:

ArrayList<FuelData> arrValue = objrp.FuelReport(AccountID,
                    deviceID, datefrom, dateto, timezone, timefrom, timeto);
            for (int i = 0; i < arrValue.size(); i++) {
                String statusDescription = StatusCode.getDescription(AccountID,
                        arrValue.get(i).GetStatusCode(), privLabel, null);
                String detail = "Mức nhiên liệu:"
                        + Math.round(arrValue.get(i).GetFuelLevel())
                        + " l\\nQuãng đường đi được:"
                        + Math.round(arrValue.get(i).GetFuelLevel())// adding GetOdometer here
                        + " km\\nThời gian: "
                        + ConvertFromEpoch(arrValue.get(i).getTimeStamp())
                        + "\\nĐịa điểm:"
                        + GetUTF8FromNCRDecimalString(arrValue.get(i)
                                .getAddress()) + "\\nTrạng thái: "
                        + GetUTF8FromNCRDecimalString(statusDescription);

                strscr += "chartData.push({fuelLevel: "
                        + arrValue.get(i).GetFuelLevel() + ",odometerKm: "
                        + arrValue.get(i).GetOdometerKM() + ", detail:\""
                        + detail + "\"});\n";
            }

现在我想添加这个方法:

GetOdometer(String accountID, String deviceID, String timestamp)

到这一行:+ Math.round(arrValue.get(i).GetFuelLevel())// adding GetOdometer here。这个方法不属于FuelData类,而是属于其他类。我可以这样做,如果能,我该怎么办?

1 个答案:

答案 0 :(得分:1)

调用arrValue.get(i)会在FuelData arraylist的i索引处抓取arrValue类的对象。

现在,如果在getOdometer()中定义方法FuelData - 您应该可以使用以下语句访问它

    arrValue.get(i).getOdometer("value1", "value2", "value3")

确保getOdometer方法返回一个字符串或至少返回一些字符串。

另外,正如我注意到你的意思,这种方法没有在FuelData中定义。那么你应该做得好,

//create Instance Of This Other Class before the for loop
//then call `GetOdometer(String accountID, String deviceID, String timestamp)`
//make sure GetOdometer is returning something
//follow camel casing for naming methods

例如,

///create instance
OtherClass c = new otherClass();
for (int i = 0; i < arrValue.size(); i++) {
.
.
String detail = "Mức nhiên liệu:"
               + Math.round(arrValue.get(i).GetFuelLevel())
               + c.GetOdometer("value1", "value2", "value3")

仅当GetFuelLevel方法行为对于此OtherClass的所有对象相同时,才尝试上述代码更改。否则移动

OtherClass c = new otherClass();
在for循环中

。如果它不起作用,请在评论中告诉我。