CompositeDataにはkeys()メソッドがありませんか?
-
06-07-2019 - |
質問
JMXを使用して、リモートプロセスからの診断情報を保存しています。 jconsoleのインターフェイスを見ると、戻り値の型が CompositeData (データは実際には CompositeDataSupport )。このオブジェクトに関連付けられているすべてのキー/値のペアを出力したい。
問題は、インターフェイスに" values()"があるように見えることです。キーを取得する方法のないメソッド。ここに何かが足りませんか?このタスクにアプローチする他の方法はありますか?
ありがとう!
解決
私が間違えていなければあなたはそうすることができます
Set< String > keys = cData.getCompositeType().keySet();
(cDataがCompositeDataオブジェクトである場合)
http: //java.sun.com/j2se/1.5.0/docs/api/javax/management/openmbean/CompositeType.html#keySet()
他のヒント
このすべてのJVM MBeanの属性を出力する小さなプログラムで、より完全な例を見つけることができます。
特に:
StringBuffer writeCompositeData(StringBuffer buffer,
String prefix, String name, CompositeData data) {
if (data == null)
return writeSimple(buffer,prefix,name,null,true);
writeSimple(buffer,prefix,name,"CompositeData("+
data.getCompositeType().getTypeName()+")",true);
buffer.append(prefix).append("{").append("\n");
final String fieldprefix = prefix + " ";
for (String key : data.getCompositeType().keySet()) {
write(buffer,fieldprefix,name+"."+key,data.get(key));
}
buffer.append(prefix).append("}").append("\n");
return buffer;
}
パーツ:
for (String key : data.getCompositeType().keySet()) {
[...] data.get(key) [...];
}
あなたが望んでいること。
所属していません StackOverflow