Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

IntelliJ IDEAで未実装のtoString()メソッドを追加する

More than 5 years have passed since last update.

IntelliJ IDEAでtoString()が未実装のクラスに対して、toString()を追加する方法を紹介します。

その前になぜtoString()メソッドを実装した方をいいかというと。例えば、このような実装があった場合、

if (debug.messageEnabled()) {
    debug.message("LoginState : " + loginState);
}

toString()が実装されていないと、

LoginState : com.sun.identity.authentication.service.LoginState@3f184740

というように役に立たないログが出力されてしまいます。これでは、デバッグ時に参考にならないので、このクラスのフィールドの情報が出力されるようにtoString()を実装します。しかし、手入力の場合は実装漏れや誤りがあるので、自動生成した方が正確かつ簡単です。

対象のクラスを選択した状態で、Code > Generate をクリックし、その中にあるtoString選択します。
generateToString.png

不要なフィールドは削除してOKボタンをクリックすると、
gen2str.png

以下のようなtoString()が追加されます。

    @Override
    public String toString() {
        return "LoginState{" +
                "orgName='" + orgName + '\'' +
                ", receivedCallbackInfo=" + Arrays.toString(receivedCallbackInfo) +
                ", prevCallback=" + Arrays.toString(prevCallback) +
                ", submittedCallbackInfo=" + Arrays.toString(submittedCallbackInfo) +
                ", callbacksPerState=" + callbacksPerState +
    ...
                ", loginStatus=" + loginStatus +
                ", modulesInSession=" + modulesInSession +
                '}';
    }

上のソースコードから分かるように配列の場合は、Arrays.toString()で各要素を表示してくれたり、文字列の場合はシングルクォートで囲んでくれたりするようです。
自動生成は、toString()以外にもgetter/setterやコピーライトなどいろいろとあります。

tamura__246
OSSエンスー(OpenAMコミッタ)
https://t246osslab.wordpress.com/
nri
NRIは「コンサルティング」「金融 ITソリューション」「産業 ITソリューション」「IT 基盤サービス」の4事業でお客様のビジネスや快適な社会、暮らしを支えています。※各記事の内容は個人の見解であり、所属する組織の公式見解ではありません。
https://www.nri.com/jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away