JMX マネージド Bean として公開されている Spring Bean があります。JConsole を使用して、メソッド (マネージド操作) を呼び出し、プリミティブ型の入力パラメーターと文字列値を渡すことができます。しかし、日付型の入力パラメーターを渡すことができません。Date 型の引数を渡す方法を理解するのを手伝ってくれる人はいますか?
質問する
2528 次
1 に答える
2
2 つの基本的な選択肢に加えて、いくつかの基本的なバリエーションがあります。次のような単純な属性があるとします。
import java.util.Date;
import java.text.SimpleDateFormat;
.......
public void setDate(Date date) {
// Implement date function here
}
内部で日付を作成し、上記のメソッドに委譲する、公開された JMX メソッド (JConsole を介して呼び出すことができる) は次のようになります。
次のように解析する形式の文字列として日付を渡します。
public void setDate(String format, String date) {
try {
setDate(new SimpleDateFormat(format).parse(date));
} catch (ParseException e) {
throw new RuntimeException("Failed to parse date [" + date + "] with expected format [" + format + "]", e);
}
}
バリエーション: 標準フォーマットを使用
/** The standard date format to pass dates as */
public static final String STD_FORMAT = "yyy-MM-dd";
public void setDate(String date) {
try {
setDate(new SimpleDateFormat(STD_FORMAT).parse(date));
} catch (ParseException e) {
throw new RuntimeException("Failed to parse date [" + date + "] with expected format [" + STD_FORMAT + "]", e);
}
}
日付を UDT Long として渡す:
public void setDate(long time) {
setDate(new Date(time));
}
これは純粋に JConsole の制限であることに注意してください。プログラムで JMX を使用すると、java.util.Date
問題なく a を渡すことができます。
于 2013-11-09T13:55:32.463 に答える