В Eclipse, как мне изменить модификаторы по умолчанию в шаблоне класса / типа? - PullRequest
7 голосов
/ 23 октября 2009

Шаблон Eclipse по умолчанию для новых типов («Окно»> «Установки»> «Стиль кода»> «Шаблоны кода»> «Новые файлы Java») выглядит следующим образом:

${filecomment}
${package_declaration}

${typecomment}
${type_declaration}

При создании нового класса это будет выглядеть примерно так:

package pkg;

import blah.blah;

public class FileName {
    // Class is accessible to everyone, and can be inherited 
}

Теперь я горячо верю в то, что доступ должен быть как можно более ограниченным, а наследование должно быть запрещено, если это явно не разрешено, поэтому я бы хотел изменить ${type_declaration}, чтобы объявить все классы как final чем public:

package pkg;

import blah.blah;

final class FileName {
    // Class is only accessible in package, and can't be inherited
}

Кажется, легче сказать, чем сделать. Единственное, что я нашел, это поиск в Google - это вопрос 2004 в списке рассылки Eclipse , который остался без ответа.

Итак, вопрос вкратце: Как изменить стандартные модификаторы класса / типа в Eclipse?

Я использую Eclipse Galileo (3.5), если это имеет значение.

Ответы [ 5 ]

2 голосов
/ 23 октября 2009

Похоже, это невозможно. ${type_declaration} является внутренним материалом.

Что вы можете сделать, это каждый раз нажимать последний флажок в диалоге «Новый класс Java». Но это не то, что вы хотите.

1 голос
/ 23 октября 2009

Хорошо, я думаю, что нет никакого крутого ответа, так что насчет этого "хака"?

${filecomment}
${package_declaration}

${typecomment}
import invalid;/* ${type_declaration} */

final class ${type_name} { }

Если вы сейчас нажмете Control + Shift + O для организации импорта, объявление старого типа исчезнет. Вы также можете добавить упорядочить импорт, чтобы сохранить действие для автоматизации.

Я знаю, что это плохо, но делает то, что ты хочешь.

1 голос
/ 23 октября 2009

Просто проверьте соответствующий модификатор доступа при создании нового класса с помощью мастера новых классов.

Мастер создания классов Java

0 голосов
/ 28 января 2013

Вот мой обходной путь:

Редактировать шаблон:

${filecomment}
${package_declaration}

${typecomment}   
final class ${type_name} {

    /* ${type_declaration} //delete */

    /** 
     * @see {@link Object#toString()}
     * @return String representation of this instance. 
     */
    public String toString() {
        return "some impl";
    }

}

Закомментируйте $ {type_declaration}, потому что это необходимо. У вас есть комментарий для удаления, но требование выполнено. Извините, если это 2-летняя тема, но для меня это все еще актуально.

0 голосов
/ 23 октября 2009

Может быть, это вам поможет?

  eclipse\plugins\org.eclipse.jdt.ui_*.jar\templates\

Пользовательская переменная Eclipse для шаблонов кода Java

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...