我想知道如何返回在 for 循环中分配的数组变量的所有值。
在下面的方法中,我将值分配给输出数组。现在我想将输出数组中的所有值显示为返回参数。由于范围级别,我得到了最后一个值。
现在,由于范围问题,我能够返回最后一个值。
public static String[] getMBeanAppsStatus(String host, String port,
String container, String filter,
String usr, String pwd) {
String Output[] = new String[3];
int mbeanAppsIdx = 0;
int LVar = mbeanAppsIdx;
try {
Object[] connections =
connectMethd(host, port, container, filter, usr, pwd);
MBeanServerConnection serverConn =
(MBeanServerConnection)connections[0];
System.out.println("serverConn from array variable in getMBeanAppsStatus" +
serverConn);
/* retrieve mbean apps matching given filter */
ObjectName mbeanDomainName = new ObjectName(filter);
Set mbeanAppNames = serverConn.queryNames(mbeanDomainName, null);
/* pattern to extract mbean application names */
Pattern mbeanAppPat =
Pattern.compile("name=", Pattern.CASE_INSENSITIVE);
/* mbean application name */
ObjectName mbeanApp = null;
/* retrieve mbean apps count */
Iterator i;
for (i = mbeanAppNames.iterator(); i.hasNext(); ) {
mbeanAppsIdx++;
System.out.println("Populating MBean App #" + mbeanAppsIdx +
"details...");
/* retrieve mbean app name and status */
mbeanApp = (ObjectName)i.next();
String mbeanAppFQDN = mbeanApp.toString();
String mbeanAppName = mbeanAppPat.split(mbeanAppFQDN)[1];
Boolean mbeanAppRunning =
Boolean.valueOf(serverConn.getAttribute(mbeanApp,
"Running").toString());
String mbeanAppStatus = "DISABLED";
if (mbeanAppRunning.booleanValue())
mbeanAppStatus = "ENABLED";
Output[0] = mbeanAppName;
Output[1] = mbeanAppFQDN;
Output[2] = mbeanAppStatus;
System.out.println("getMBeanAppsStatus output " +
"mbeanAppName " + mbeanAppName +
" mbeanAppFQDN " + mbeanAppFQDN +
" mbeanAppStatus : " + mbeanAppStatus);
}
} catch (MalformedObjectNameException e) {
e.getStackTrace();
} catch (InstanceNotFoundException e) {
e.getStackTrace();
} catch (AttributeNotFoundException e) {
e.getStackTrace();
} catch (ReflectionException e) {
e.getStackTrace();
} catch (MBeanException e) {
e.getStackTrace();
} catch (IOException ioe) {
System.out.println(ioe);
}
System.out.println("getMBeanAppsStatus Output " + Output);
return Output;
}
基本上,我正在尝试将上述方法转换为 J2EE Web 服务,并且来自 Web 服务的响应将是该方法的 Output 的返回值。
我在方法中有 2 个问题,我想纠正它。
1)想要连接 , 和 的值mbeanAppName
,mbeanAppFQDN
并mbeanAppStatus
用逗号,
分隔并分配给数组变量。
2)返回应该包含所有先前值的数组结果。