Eclipse를 통해 다양한 Java 코드 템플릿을 만들 수 있습니다.
창> 환경 설정> Java> 편집기> 템플리트
예 :
sysout
다음으로 확장됩니다.
System.out.println(${word_selection}${});${cursor}
당신은 입력하여이를 활성화 할 수 있습니다 sysout
다음CTRL+SPACE
현재 어떤 유용한 Java 코드 템플릿을 사용하고 있습니까? 그것의 이름과 설명을 포함하고 왜 멋진 지.
내장 기능이 아닌 템플릿의 독창적이거나 새로운 사용을 찾고 있습니다.
- Log4J 로거 작성
- 디스플레이에서 swt 색상 얻기
- Syncexec-Eclipse 프레임 워크
- 싱글 톤 패턴 / Enum 싱글 톤 생성
- 읽기 파일
- 콘 스트
- 쫓다
- 형식 문자열
- 주석 코드 검토
- 문자열 형식
- 마지막으로 잠금 시도
- 메시지 형식 i18n 및 로그
- 이퀄라이저
- 해시 코드 빌더
- 스프링 객체 주입
- FileOutputStream 작성
답변
다음 코드 템플릿은 로거를 생성하고 필요한 경우 올바른 가져 오기를 생성합니다.
SLF4J
${:import(org.slf4j.Logger,org.slf4j.LoggerFactory)}
private static final Logger LOG = LoggerFactory.getLogger(${enclosing_type}.class);
Log4J 2
${:import(org.apache.logging.log4j.LogManager,org.apache.logging.log4j.Logger)}
private static final Logger LOG = LogManager.getLogger(${enclosing_type}.class);
Log4J
${:import(org.apache.log4j.Logger)}
private static final Logger LOG = Logger.getLogger(${enclosing_type}.class);
소스 .
7 월
${:import(java.util.logging.Logger)}
private static final Logger LOG = Logger.getLogger(${enclosing_type}.class.getName());
답변
여기에 몇 가지 추가 템플릿 : Link I –
Link II
난이게 좋아:
readfile
${:import(java.io.BufferedReader,
java.io.FileNotFoundException,
java.io.FileReader,
java.io.IOException)}
BufferedReader in = null;
try {
in = new BufferedReader(new FileReader(${fileName}));
String line;
while ((line = in.readLine()) != null) {
${process}
}
}
catch (FileNotFoundException e) {
logger.error(e) ;
}
catch (IOException e) {
logger.error(e) ;
} finally {
if(in != null) in.close();
}
${cursor}
업데이트 :이 템플릿의 Java 7 버전은 다음과 같습니다.
${:import(java.nio.file.Files,
java.nio.file.Paths,
java.nio.charset.Charset,
java.io.IOException,
java.io.BufferedReader)}
try (BufferedReader in = Files.newBufferedReader(Paths.get(${fileName:var(String)}),
Charset.forName("UTF-8"))) {
String line = null;
while ((line = in.readLine()) != null) {
${cursor}
}
} catch (IOException e) {
// ${todo}: handle exception
}
답변
문자열 형식
MessageFormat-선택 사항을 MessageFormat으로 둘러 쌉니다.
${:import(java.text.MessageFormat)}
MessageFormat.format(${word_selection}, ${cursor})
이를 통해 커서를 문자열로 이동하고 선택을 전체 문자열 (Shift-Alt-Up)로 확장 한 다음 Ctrl-Space를 두 번 확장 할 수 있습니다.
선택 잠금
잠그기-마지막으로 잠그기를 시도하여 선택한 줄을 둘러싸십시오. 잠금 변수가 있다고 가정하십시오.
${lock}.acquire();
try {
${line_selection}
${cursor}
} finally {
${lock}.release();
}
NB ${line_selection}
템플릿은 Surround With 메뉴 (Alt-Shift-Z)에 나타납니다.
답변
나는 죽은 게시물을 차고 있지만 완료를 위해 이것을 공유하고 싶었습니다.
결함이있는 이중 검사 잠금 설계를 극복하는 올바른 버전의 싱글 톤 생성 템플릿 (위에서 논의하고 다른 곳에서 언급)
싱글 톤 생성 템플릿 :
이름 지정createsingleton
static enum Singleton {
INSTANCE;
private static final ${enclosing_type} singleton = new ${enclosing_type}();
public ${enclosing_type} getSingleton() {
return singleton;
}
}
${cursor}
위를 사용하여 생성 된 싱글 톤에 액세스하려면 :
싱글 톤 참조 템플릿 :
이름을 다음 getsingleton
과 같이 지정합니다 .
${type} ${newName} = ${type}.Singleton.INSTANCE.getSingleton();
답변
반복하는 코드 스 니펫 추가 Map.entrySet()
:
주형:
${:import(java.util.Map.Entry)}
for (Entry<${keyType:argType(map, 0)}, ${valueType:argType(map, 1)}> ${entry} : ${map:var(java.util.Map)}.entrySet())
{
${keyType} ${key} = ${entry}.getKey();
${valueType} ${value} = ${entry}.getValue();
${cursor}
}
생성 된 코드 :
for (Entry<String, String> entry : properties.entrySet())
{
String key = entry.getKey();
String value = entry.getValue();
|
}
답변
의 경우 log
멤버 변수에 추가하는 데 도움이되는 작은 내용입니다.
private static Log log = LogFactory.getLog(${enclosing_type}.class);
답변
Mockito를 사용하여 모의 객체를 만듭니다 ( “Java 명령문”컨텍스트에서).
${:importStatic('org.mockito.Mockito.mock')}${Type} ${mockName} = mock(${Type}.class);
그리고 “자바 유형 멤버”에서 :
${:import(org.mockito.Mock)}@Mock
${Type} ${mockName};
예외를 발생시키기 위해 void 메소드를 조롱하십시오.
${:import(org.mockito.invocation.InvocationOnMock,org.mockito.stubbing.Answer)}
doThrow(${RuntimeException}.class).when(${mock:localVar}).${mockedMethod}(${args});
뭔가를하기 위해 void 메소드를 조롱하십시오 :
${:import(org.mockito.invocation.InvocationOnMock,org.mockito.stubbing.Answer)}doAnswer(new Answer<Object>() {
public Object answer(InvocationOnMock invocation) throws Throwable {
Object arg1 = invocation.getArguments()[0];
return null;
}
}).when(${mock:localVar}).${mockedMethod}(${args});
정확히 한 번 호출 된 모의 메소드를 확인하십시오.
${:importStatic(org.mockito.Mockito.verify,org.mockito.Mockito.times)}
verify(${mock:localVar}, times(1)).${mockMethod}(${args});
조롱 된 메소드가 호출되지 않았는지 확인하십시오.
${:importStatic(org.mockito.Mockito.verify,org.mockito.Mockito.never)}verify(${mock:localVar}, never()).${mockMethod}(${args});
Google Guava를 사용하는 새로운 링크 목록 (해시 셋 및 해시 맵과 유사) :
${import:import(java.util.List,com.google.common.collect.Lists)}List<${T}> ${newName} = Lists.newLinkedList();
또한 Test 클래스를 생성하는 거대한 템플릿을 사용합니다. 다음은 관심있는 모든 사용자가 사용자 정의해야하는 단편화 된 단편입니다.
package ${enclosing_package};
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.Matchers.*;
import static org.mockito.Matchers.*;
import static org.mockito.Mockito.*;
import org.mockito.Mockito;
import org.slf4j.Logger;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.junit.runner.RunWith;
// TODO autogenerated test stub
@RunWith(MockitoJUnitRunner.class)
public class ${primary_type_name} {
@InjectMocks
protected ${testedType} ${testedInstance};
${cursor}
@Mock
protected Logger logger;
@Before
public void setup() throws Exception {
}
@Test
public void shouldXXX() throws Exception {
// given
// when
// TODO autogenerated method stub
// then
fail("Not implemented.");
}
}
// Here goes mockito+junit cheetsheet