デバッグする時、NetBeansのデバッグで止めてチェックしたりするのが、じゃまくさく、時間かかるので、止めてみて終了させる必要ない場合用に、System.out.println() で見れるようにしてます。
昔作った、obj.getClass().getDeclaredFields()でのループ型で配列がとれない欠点があり、JSON出力にしてます。
null, getterのないフィールドがとれない欠点がありますが、PHPの var_dump() みたいなこと出来て便利です。
[ 出力例 ]
===============================
Time : 2019-01-08 19:16:29.204
Class : vesselsch.Polygon
Comment : ポリゴン追加
-------------------------------
{
"lats": [
35.68114829375634,
35.680799702175534,
35.6783595184685,
35.67561015535696,
35.67561015535696,
35.67700460322533,
35.677771539167104,
35.678956789306746,
35.679026509354955,
35.68114829375634,
35.68114829375634
],
"lons": [
139.97815035776364,
139.98261355356442,
139.98287104562985,
139.98201273874508,
139.9794378180908,
139.97892283395993,
139.9801244635986,
139.9801244635986,
139.97840784982907,
139.97815035776364,
139.97815035776364
],
"id_poly": 0,
"nm_poly": "1916",
"cd_unlo": "JPFNB",
"tp_poly": "CY",
"nm_route": "",
"cnt_corner": 0,
"latmid": 0.0,
"lonmid": 0.0,
"m_depth": 0.0
}
[ コード例 ]
// JSONデコードはリフレクションで行う //
Polygon PL = new Polygon();
Gson gson = new GsonBuilder().setPrettyPrinting().create();
Type type = new TypeToken<Polygon>() {
}.getType();
PL = gson.fromJson(jsn, type);
// デバッグ出力 //
FieldValuePrint fvp = new FieldValuePrint(PL, "ポリゴン追加");
[ 出力用クラス ]
package vesselsch;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.apache.commons.lang.time.DateFormatUtils;
/**
* 指定クラスJSON出力
* @author 田中尚
*/
public class FieldValuePrint {
private Object obj;
private String comment;
/**
* 引数付コンストラクタ
* @param obj クラスオブジェクト
*/
public FieldValuePrint(Object obj) {
this.obj = obj;
this.printToJSON();
}
/**
* 引数付コンストラクタ
* @param obj クラスオブジェクト
* @param comment コメント
*/
public FieldValuePrint(Object obj, String comment) {
this.obj = obj;
this.comment = comment;
this.printToJSON();
}
/**
* クラスのフィールド名、フィールド値一覧チェック出力
*
*/
public void printToJSON() {
// JSON出力 //
Gson gsondbg = new GsonBuilder().setPrettyPrinting().create();
System.out.println("===============================");
System.out.println("Time : " + DateFormatUtils.format(new java.util.Date(), "yyyy-MM-dd HH:mm:ss.SSS"));
System.out.println("Class : " + this.obj.getClass().getCanonicalName());
if (this.comment != null) {
System.out.println("Comment : " + this.comment);
}
System.out.println("-------------------------------");
System.out.println(gsondbg.toJson(this.obj));
}
}
[ 送信データ画面例 ]