変換:JAVA初期化手順

2683 ワード

package com.test;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test extends Parent {
    private static String str = "      3";
    static {
        Parent.println(str);
        Parent.println("     4");
    }

    private String string = "    10";
    {
        Parent.println(string);
        Parent.println("   11");
    }

    private boolean result = true;

    public Test() {
        super();
        Parent.println("     12");
    }

    public String getSubString() {
        return !result ? "       6" : string;
    }

    public static void main(String[] args) {
        System.out.println("  Main  ");
        new Test();
    }
}

class Parent {
    static private Pattern pattern = Pattern.compile("(\\D+)(\\d+)");

    static private int count = 0;

    private static String str = "      1";
    static {
        Parent.println(str);
        Parent.println("     2");
    }
    {
        Parent.println(getParentString());
        Parent.println(getSubString());
    }

    private String string = "    7";
    {
        Parent.println(string);
        Parent.println("   8");
    }

    private boolean result = true;

    public Parent() {
        super();
        Parent.println("     9");
    }

    public String getSubString() {
        return null;
    }

    public String getParentString() {
        return !result ? "       5" : string;
    }

    public static void println(String out) {
        Matcher matcher = pattern.matcher(out);
        if (matcher.find()) {
            System.out.println(String.format("%02d、%7s %02d", ++count,
                    matcher.group(1), Integer.valueOf(matcher.group(2)))
                    .replaceAll(" ", "     "));
        }
    }
}

 
出力結果:
01、     親静的プロパティ     0102、          親静的ブロック     0203、     サブクラスの静的プロパティ     0304、          サブクラス静的ブロック     04サブクラスMainメソッド05、親属性デフォルト     0506、サブクラス属性デフォルト     0607、               親属性     0708、                    親ブロック     0809、          親コンストラクタ     0910、               サブクラス属性     1011、                    サブクラスブロック     1112、          サブクラスコンストラクタ     12