2016-09-28 5 views
0

Предположим, что я пишу метод, который делегирует часть своей работы существующему методу (хорошим примером может служить заводский метод, вызывающий конструктор).Создание методов делегирования в IntelliJ

Я хотел бы иметь возможность автоматически добавлять аргументы к методу, который я пишу, на основе метода, который он вызывает. Однако IntelliJ, похоже, не имеет подходящего сочетания для этого. Например:

У меня есть

class Foo { 
    Foo(ArgClass arg); 
} 

и я только что создал

class FooFactory { 
    Foo createFoo() { 
     return new Foo(); 
    } 
} 

есть ярлык (или последовательность из них), что бы получить мою фабрику

class FooFactory { 
    Foo createFoo(ArgClass arg) { 
     return new Foo(arg); 
    } 
} 

без ввода вручную "arg"?

+0

Вы не можете использовать код -> делегировать методы ?? эта функция есть?/ –

ответ

0

Я рекомендую делать это так. Скопируйте & пасту arg раз здесь (| это текстовый курсор):

class FooFactory { 
    Foo createFoo() { 
     return new Foo(arg|); 
    } 
} 

Invoke Alt + Введите и выбрать быстрое решение Create parameter 'arg'. Появится диалог рефакторинга изменения подписи, введите Ctrl + Введите, чтобы принять. Результат:

class FooFactory { 
    Foo createFoo(ArgClass arg) { 
     return new Foo(arg); 
    } 
} 
+0

Ввод «arg» - это то, чего я пытаюсь избежать. Со многими аргументами функции, имеющими длинные значащие имена, это может стать довольно утомительным довольно быстро. – Arkadiy

+0

использование копия & вставка? –

+0

Конечно, это решение. – Arkadiy

Смежные вопросы