繁体   English   中英

如何从Java列表中获取值 <E> ?

[英]How to get values from Java List<E>?

我正在尝试为BMC动作请求系统服务器编写一个迷你插件。

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

有任何想法吗?

谢谢托马斯

您应该在迭代。

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;

pInValues是一个java.util.List List没有getValue()方法。

您将需要访问List一个元素,以便能够对其调用getValue() 尝试:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM