如何从Java List <e>获取值?</e>

时间:2012-06-08 12:54:59

标签: java api remedy

我正在尝试为BMC Action Request System Server编写一个迷你插件。

filterAPICall
public abstract List<com.bmc.arsys.api.Value> filterAPICall(ARPluginContext context,
                                                        List<com.bmc.arsys.api.Value> pInValues)
                                                 throws com.bmc.arsys.api.ARExceptionDescription copied from interface: ARFilterAPIPluggable

给定一组输入值,处理它并返回输出值列表。还提供了插件上下文和实例数据。

Specified by:
filterAPICall in interface ARFilterAPIPluggable

Parameters:
context - Current context for this plugin call, like username etc.
pInValues - input values 

Returns:
output values 

Throws: 
com.bmc.arsys.api.ARException

com.bmc.arsys.api.Value的描述如下: http://www.javasystemsolutions.com/documentation/thirdparty/arapiv75/com/bmc/arsys/api/Value.html

现在,我的电话是:

    public List<Value> filterAPICall(ARPluginContext context, List<Value> pInValues) throws ARException{
        context.logMessage(pluginInfo, ARPluginContext.PLUGIN_LOG_LEVEL_INFO, "filterapiCall()");

        if (pInValues.size() == 0)
            return null;

        ArrayList<Value> outValues = new ArrayList<Value>();

        outValues.add(0, new Value(String.valueOf(InetAddresses.isInetAddress(String.valueOf(pInValues)))));

        return outValues;
    }

出于某种原因

    outValues.add(0, new Value(String.valueOf(InetAddresses.isInetAddress(String.valueOf(pInValues)))));

无效。

我也试过了:

    outValues.add(0, new Value(String.valueOf(InetAddresses.isInetAddress(String.valueOf(pInValues.getValue())))));

但是编译器说:

javac IPChecker.java
IPChecker.java:30: cannot find symbol
symbol  : method getValue()
location: interface java.util.List<com.bmc.arsys.api.Value>
        outValues.add(0, new Value(String.valueOf(InetAddresses.isInetAddress(String.valueOf(pInValues.getValue())))));
                                                                                                      ^
1 error

有什么想法吗?

由于 托马斯

3 个答案:

答案 0 :(得分:2)

你应该迭代。

if (pInValues.size() == 0)
    return null;

ArrayList<Value> outValues = new ArrayList<Value>();

for(Value value : pInValues) {
    outValues.add(0, new Value(String.valueOf(InetAddresses.isInetAddress(String.valueOf(value)))));
}

return outValues;

答案 1 :(得分:1)

pInValuesjava.util.ListList没有getValue()方法。

答案 2 :(得分:0)

您需要访问List中的元素才能在其上调用getValue()。尝试:

outValues.add(0, new Value(String.valueOf(InetAddresses.isInetAddress(
    String.valueOf(pInValues.get(0).getValue())))));

这将转换第一个元素并将其添加到输出列表中。要获取所有元素,您需要遍历pInValues中的元素并逐个翻译它们,将每个结果添加到输出列表