0

私がこのような方法から始める場合:

package com.sandbox;

import java.util.ArrayList;
import java.util.List;

public class Sandbox {

    public static void main(String[] args) {
        List<String> strings = new ArrayList<String>();
        strings.add("a");
        strings.add("b");

        for (String string : strings) {
            System.out.println(string);
        }
    }
}

最初の行を強調表示してからadd(...)メソッドを抽出すると、コードは次のようになります。

package com.sandbox;

import java.util.ArrayList;
import java.util.List;

public class Sandbox {

    public static void main(String[] args) {
        List<String> strings = new ArrayList<String>();
        addA(strings);
        strings.add("b");

        for (String string : strings) {
            System.out.println(string);
        }
    }

    private static void addA(List<String> strings) {
        strings.add("a");
    }
}

私はこれをほとんど望んでいません。私はむしろそれがこのようなことをしたいです:

package com.sandbox;

import java.util.ArrayList;
import java.util.List;

public class Sandbox {

    public static void main(String[] args) {
        List<String> strings = new ArrayList<String>();
        strings.addAll(addA());
        strings.add("b");

        for (String string : strings) {
            System.out.println(string);
        }
    }

    private static List<String> addA() {
        List<String> strings = new ArrayList<String>();
        strings.add("a");
        return strings;
    }
}

または多分このようなもの:

package com.sandbox;

import java.util.ArrayList;
import java.util.List;

public class Sandbox {

    public static void main(String[] args) {
        List<String> strings = addA();        
        strings.add("b");

        for (String string : strings) {
            System.out.println(string);
        }
    }

    private static List<String> addA() {
        List<String> strings = new ArrayList<String>();
        strings.add("a");
        return strings;
    }
}

この方法でintellij抽出メソッドを作成する方法はありますか?

4

1 に答える 1

2

メソッドの最初の2行を選択すると(新しいArrayList呼び出しを含む)、2番目の結果を得ることができます。

于 2013-01-17T21:12:06.330 に答える