- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
private void setTims( String project )
{
int endIndex = project.indexOf( "-" );
boolean isNumber = false;
if ( endIndex != -1 )
{
try
{
Integer.parseInt( project.substring( 0, endIndex ) );
isNumber = true;
}
catch ( NumberFormatException e )
{
//ignore
}
}
if ( isNumber )
{
runtimeContext.put( RuntimeContext.TIMS_NUMBER, project.substring( 0, endIndex ) );
}
else
{
runtimeContext.put( RuntimeContext.TIMS_NUMBER, project );
}
}
guest 20.03.2009 22:53 # +1
Да, с одной стороны, вроде и выглядит криво.
Но с другой стороны, а как это сделать лучше?
guest 22.04.2009 21:18 # 0
Из видимых улучшений можно сказать только про убирание повторного вызова substring, да вынести проверку строки на формат в подфункцию.
Функции, которая определяет интежер это или нет - вроде как в стандартной жаве не существует. А регулярные выражения, скорее всего, сольют по производительности. Так что код как код. Вполне неплохой, пусть и внешне не сияющий совершенством.
guest 22.10.2009 05:44 # 0
private String getNumberStr(String str)
{
... // тут все понятно, если не число - вернем null
}
private void setTims( String project )
{
String num = getNumberStr(project);
String res = ( num != null ) ? num : project;
runtimeContext.put( RuntimeContext.TIMS_NUMBER, res);
}
Достаточно вспомнить принцип ООП: "каждый метод должен выполнять ровно одну функцию и быть настолько простым, насколько это возможно, но не проще".
А вообще советую почитать книжку "Совершенный код". После этого подобные решения видишь почти сразу )