- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
Object o1 = true ? Integer.valueOf(1) : Double.valueOf(2.0);
Object o2;
if (true) {
o2 = Integer.valueOf(1);
} else {
o2 = Double.valueOf(2.0);
}
System.out.println(o1);
System.out.println(o2);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+79
Object o1 = true ? Integer.valueOf(1) : Double.valueOf(2.0);
Object o2;
if (true) {
o2 = Integer.valueOf(1);
} else {
o2 = Double.valueOf(2.0);
}
System.out.println(o1);
System.out.println(o2);
Такие вот в Java интересные типы-обёртки.
Проверить себя: http://ideone.com/BrhREq
Источник: http://java.dzone.com/articles/10-things-you-didnt-know-about
+71
protected boolean valid_move(int from, int to, int aBoard[], int colorfor) {
if(plainType(colorfor) == userColor) {
return (to>=0 && to<=35 && from >=0 && from<=35 && plainType(aBoard[from])==colorfor && aBoard[to]==emptyType
&& ((from-to == 4 || from-to==5)
|| ((from-to == 10 && plainType(aBoard[from-5])==oppositeType(colorfor))
|| (from-to == 8 && plainType(aBoard[from-4])==oppositeType(colorfor)))
|| (aBoard[from]==kingType(colorfor)
&& ((to-from == 4 || to-from==5)
|| ((to-from == 10 && plainType(aBoard[from+5])==oppositeType(colorfor))
|| (to-from == 8 && plainType(aBoard[from+4])==oppositeType(colorfor)))))));
}
else {
return (to>=0 && to<=35 && from >=0 && from<=35 && plainType(aBoard[from])==colorfor && aBoard[to]==emptyType
&& ((to-from == 4 || to-from==5)
|| ((to-from == 10 && plainType(aBoard[from+5])==oppositeType(colorfor))
|| (to-from == 8 && plainType(aBoard[from+4])==oppositeType(colorfor)))
|| (aBoard[from]==kingType(colorfor)
&& ((from-to == 4 || from-to==5)
|| ((from-to == 10 && plainType(aBoard[from-5])==oppositeType(colorfor))
|| (from-to == 8 && plainType(aBoard[from-4])==oppositeType(colorfor))))))); // =)))))
}
}
https://github.com/haiming020/BBS-AKB48/blob/master/src/Checkers.java
+76
ArrayAdapter<String> alerts = new ArrayAdapter<String>(getActivity(),
R.layout.spinner_item, time);
if (alerts != null) { ... }
+121
if (Ints.contains(new int[] { 4, 5 }, statusCode / 100)) {
// error response
} else {
// success response
}
Насколько я знаю, Apache HTTP Client не содержит "официального" метода для определения категории кода состояния. Приходится так.
+117
@Override
public void afterPersistenceInit() {
val conn = emProvider.get().unwrap(Connection.class);
try {
log.info("Transaction isolation level: {}", getLevelString(conn.getTransactionIsolation()));
} catch (final SQLException e) {
log.error("Error getting transaction isolation level", e);
}
}
private String getLevelString(final int isolationLevel) {
// Poor man's enums. Use reflection to find a constant with the given value
try {
for (val maybeLevelConstant: Connection.class.getDeclaredFields()) {
if (maybeLevelConstant.getType() == int.class && maybeLevelConstant.getName().startsWith("TRANSACTION_")
&& maybeLevelConstant.getInt(null) == isolationLevel) {
return maybeLevelConstant.getName();
}
}
} catch (final IllegalArgumentException | IllegalAccessException e) {
return "UNKNOWN";
}
return "UNKNOWN";
}
Ищем рефлексией константу с нужным значением. И всё для того, чтобы напечатать её в логе. Вот что крест животворящий отсутствие энумов в legacy API делает.
+86
public PriceComparator {
private PriceComparator INSTANCE;
public PriceComparator() {
INSTANCE = this;
}
public PriceComparator getInstance() {
return INSTANCE;
}
...
}
Singleton fail...
+117
@Nullable
public static BigDecimal getWidth(final ITagSpecification spec, final TagSize size) {
switch (size) {
case S:
return spec.getSmallWidth();
case M:
return spec.getMediumWidth();
case L:
return spec.getLargeWidth();
default:
throw new AssertionError();
}
}
@Nullable
public static BigDecimal getHeight(final ITagSpecification spec, final TagSize size) {
switch (size) {
case S:
return spec.getSmallHeight();
case M:
return spec.getMediumHeight();
case L:
return spec.getLargeHeight();
default:
throw new AssertionError();
}
}
public static BigDecimal getDiameter(final ITagSpecification spec, final TagSize size) {
switch (size) {
case S:
return spec.getSmallDiameter();
case M:
return spec.getMediumDiameter();
case L:
return spec.getLargeDiameter();
default:
throw new AssertionError();
}
}
@Nullable
public static BigDecimal getWeight(final ITagSpecification spec, final TagSize size) {
switch (size) {
case S:
return spec.getSmallWeight();
case M:
return spec.getMediumWeight();
case L:
return spec.getLargeWeight();
default:
throw new AssertionError();
}
}
Бойлерплейт - он такой. А можно ли с JPA это как-то изящнее сделать? Дело в том, что {small|medium|large}{Width|Height|Diamet er|Weight} - это двенадцать столбцов таблицы в БД. Пока единственное, что приходит на ум - это сделать три одинаковых @Embedded'а на каждый размер.
+119
static void writeInternal(byte type, Object object, ObjectOutput out) throws IOException {
out.writeByte(type);
switch (type) {
case DURATION_TYPE:
((Duration) object).writeExternal(out);
break;
case INSTANT_TYPE:
((Instant) object).writeExternal(out);
break;
...
<snip>
...
case PERIOD_TYPE:
((Period) object).writeExternal(out);
break;
default:
throw new InvalidClassException("Unknown serialized type");
}
}
JDK 8. java.time.Ser.
Вот что происходит, когда в языке есть только public-наследование. Без рефлексии короче написать нельзя.
+84
private static final int INT_5 = 5;
private static final int INT_3 = 3;
private static final int INT_4 = 4;
private static final int INT_6 = 6;
private static final int INT_7 = 7;
private static final int INT_8 = 8;
+133
/**
* return angle of otrezok near the center, with circle point as a second part of the otrezok
*
* @param center
* @param circlePoint
* @param len
* @return
*/