2015-05-28 2 views
0

Итак, я пытаюсь создать хороший шаблон java для создания нового класса java. В настоящее время все мои новые классы выглядят одинаково, поэтому я работал над созданием шаблона, поэтому мне не нужно вводить одно и то же более 20 раз.Шаблон добавления Java Eclipse добавляет или бросает имя класса

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

public class test throws Exception{ 

} 

Я не могу понять, как это сделать.

Я думал, что это может быть где-то рядом

${typecomment} 

${type_declaration} 

Однако, если я пытаюсь добавить его перед typecomment, он просто идет перед именем класса (то же самое для если я иду между ними), и если я вхожу это после type_declaration, это просто идет в конец файла после последней фигурной скобки

Можно ли даже делать то, что я пытаюсь?

Это очень похоже на то, что мой шаблон выглядит прямо сейчас:

${filecomment} 
${package_declaration} 
import java.util.*; 
/** 
* 
*@author 
*@version 28 May 2015 
**/ 
${type_declaration} 

Когда я создаю новый класс тест он создает файл, который выглядит как:

package unfinished; 
import java.util.* 
/** 
* @author 
* @version 28 May 2015 
**/ 
public class test { 

} 

Который является отличное начало, но я хочу, чтобы он остался

public class test extends bicycle{ 

} 
+0

Можете ли вы добавить шаблон, который у вас есть до сих пор, на ваш вопрос? Кроме того, какой контекст вы используете для своего шаблона? –

+0

@MartinCarney Отредактировано, надеюсь, у вас есть то, что вы хотите. Я делаю свои изменения в настройках> Java> Стиль кода> Шаблоны кода> Код> Новые файлы Java – Eabryt

+0

@MartinCarney Я довольно новичок в шаблонах Eclipse. Я делаю это через Шаблоны на экране «Предпочтения», а не «Шаблоны» в разделе «Окно»> «Показать представление»> «Шаблоны» – Eabryt

ответ

1

EDIT: С учетом дополнительной информации, которую вы предоставили ed:

Для шаблона стиля «Новые Java-файлы» вы не можете (или даже не должны, если хотите) указать, что он расширяет, потому что вы указываете это в диалоговом окне New Class.

Также не имеет смысла добавлять объявление throws для класса. Если вы хотите добавить объявление throws в конструктор по умолчанию, это имеет смысл. Если вы хотите добавить конструктор по умолчанию из шаблона, вы можете отредактировать шаблон стиля кода «Класс тела», но я бы рекомендовал вместо него писать шаблон поддержки содержимого, поскольку шаблон стиля кода всегда применяется к каждому отдельному файлу, тогда как шаблоны поддержки контента используются только тогда, когда вы специально их выбираете.

Чтобы добавить шаблон содержания, перейдите в раздел «Настройки: Java: Редактор: Шаблоны» и нажмите «Создать ...». Установите контекст в «Java», затем введите свой конструктор.

Чтобы использовать новый шаблон, введите его имя в файле Java и нажмите ctrl-space, чтобы активировать поддержку контента, а затем выберите свой шаблон из списка. (Content помощь будет автоматически выбирать верхний вариант, если есть только один вариант, когда вы нажмете ctrl-space.


(старый ответ, работает под неправильного предположения мы говорим о мастере содержимого шаблонов, а не кода шаблонов стилей :)

Если вы всегда расширяете/реализуете/бросаете то же самое, просто скопируйте его в свой шаблон.

Но если вы хотите войти в режим автозаполнения и указать, какой класс продлить и т. Д., Вы можете использовать любое произвольное имя для него.

Например, я должен сделать кучу методов BD, поэтому я соединял этот шаблон:

public ${Type:return_type} ${name}(${}) throws Exception { 
    Connection conn = Database.getConnection(); 
    ${BaseDAO:elemType} dao = new ${BaseDAO}(conn); 
    try { 
     return dao.${name}(); 
    } catch (Exception e) { 
     throw e; 
    } finally { 
     Database.closeConnection(conn); 
    } 
} 

${name} это просто произвольный тег, он не соответствует ни в «Вставить переменную» , Каждый раз, когда в моем шаблоне появляется ${name}, независимо от того, какие типы пользователей в нем будут отображаться во всех случаях. Я мог бы так же легко положить ${foo} или ${anyArbitraryThingIWant} и получить тот же результат. Я думаю, что это самый простой способ ответить на ваш вопрос.


Следующие биты на самом деле не отвечают на ваш вопрос, просто объясняя некоторые элементы из моего примера.

${Type:return_type} позволяет мне установить тип возвращаемого метода. Поскольку я назвал его «Тип», возвращаемым по умолчанию типом будет класс Type, который в моей программе является объектом с именем, идентификатором и описанием.

${} - пустая запись в виде вкладок. К сожалению, я не могу использовать его для передачи параметров метода в вызов dao.${name}(...), потому что он копирует дословно каждому соответствующему экземпляру, а объявления параметров метода не совпадают с их ссылкой. То есть если я введу «String str» в ${}, он поместил бы «String str», где я вызываю соответствующий метод dao, что является неправильным синтаксисом.

+0

. Я прекрасно разбираюсь в этом, если могу понять, как это сделать. Я не смог понять, что делают '$ {typecomment}' и '$ {type_declaration}'. Я почти уверен, что когда-то я понял, что жесткий код будет просто 'public class $ {type_name}' throws ... – Eabryt

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