1

我有一个联系 Web 服务、解析并返回自定义对象数组的方法。该服务有时还会在响应中包含一些错误消息。

我希望我的方法在返回自定义对象数组时,应该能够在类似于输出参数的东西上更新错误消息。

看来 Java 不支持 out 参数。在 Objective-C 中,许多方法将像 &error 这样的指针作为最后一个参数来更新错误。

有没有办法在 Java 中实现这一点?

4

2 回答 2

2

一种方法是将可变对象(例如列表)传递给您的方法,并让该方法更改其内容。

例如,在这种情况下,您可以传递一个空的错误消息列表。如果没有错误,列表将返回空;否则,该方法会将它发现的任何错误插入到列表中,并且调用者将能够检索它们:

public CustomObject[] retrieve(List<ErrorObject> errors) {
    ...
}

呼叫者:

...
List<ErrorObject> errors = new ArrayList<ErrorObject>();
CustomObject[] results = wrapper.retrieve(errors);
if (results == null) {
    for (ErrorObject eo : errors) {
        ...
    }
}
于 2013-03-28T18:52:02.260 回答
0

您可以在类中定义一个全局变量。

private String errorMessage;

在类中,您将定义您的 Java 方法。

public Object[] returnObjects {
    // code goes here
    errorMessage = "Some message";
}

在 Java 中,返回一个空数组比返回 null 更好。遇到空数组时,您将检查 errorMessage 以获取消息。

于 2013-03-28T18:55:51.240 回答