- 1
- 2
- 3
- 4
- 5
public static java.sql.Date currentSQLDate() {
java.sql.Date result = null;
Date date = new Date();
return result;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+80
public static java.sql.Date currentSQLDate() {
java.sql.Date result = null;
Date date = new Date();
return result;
}
ох, ёптеть...
+76
public static final String RANDOM_VALUE_QUERY = "select to_number(to_char(dbms_random.value(100,999),'999'),'999') from dual";
Прогрессивный способ генерации случайных чисел=.
+75
public Double toDouble(String str){
if ((str==null)||(str.equals(""))) str = "0.0";
if ((str.contains(","))&&(!str.contains("."))) str = str.replace(",", ".");
return new Double(str);
}
Лишняя защита никогда не бывает лишней
+114
private List<PalletePath> killDupes(List<PalletePath> pathesNew) {
List<PalletePath> noDupes = new ArrayList<PalletePath>();
for (PalletePath tp : pathesNew) {
if (!noDupes.contains(tp)) {
noDupes.add(tp);
}
}
return noDupes;
}
Set? Не, не слышали.
+74
private boolean userInOneRegistrationNode() throws DfException {
String uname = OrganizationStaffStructureHelper.getCurrentUserName();
int i = 0;
IDfCollection NodesCol = DQLHelper.getCollection(DQL_GET_REGISTRATOR_DIV, new String[]{uname});
while (NodesCol.next()) {
if (!(NodesCol == null)) {
String group_name = NodesCol.getString(GROUP_NAME);
i = i + 1;
}
}
if (i == 1) {
return true;
}
return false;
}
Заменяется 2мя строками один - select count(*), вторая - полученный результат Integer.ValueOf(...).
+71
String currentDate = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(new Date());
accountNumber.append(String.valueOf(1900 + new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse(currentDate).getYear()));
accountNumber.append(String.valueOf(new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse(currentDate).getMonth()));
accountNumber.append(String.valueOf(new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse(currentDate).getDate()));
accountNumber.append(String.valueOf(new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse(currentDate).getHours()));
accountNumber.append(String.valueOf(new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse(currentDate).getMinutes()));
accountNumber.append(String.valueOf(new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").parse(currentDate).getSeconds()));
ну а чо, зато внушительно выглядит
+81
public String isThisScreenWithHdpiDensity() {
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
switch (metrics.densityDpi) {
case DisplayMetrics.DENSITY_LOW:
return "ldpi";
case DisplayMetrics.DENSITY_MEDIUM:
return "mdpi";
case DisplayMetrics.DENSITY_HIGH:
return "hdpi";
}
return "xhdpi";
}
...
if (isThisScreenWithHdpiDensity().equals("hdpi")) {
lpTabPane.height = 65;
}
if (isThisScreenWithHdpiDensity().equals("mdpi")) {
lpUpperPane.height = 70;
}
if (isThisScreenWithHdpiDensity().equals("ldpi")) {
lpTabPane.height = 32;
}
if (isThisScreenWithHdpiDensity().equals("xhdpi")) {
}
Перегоним константу в стрингу, а потом проверим ее equals. Отлично!
+113
public static void assertAlmostEquals(final double actual, final double expected) {
Assert.assertTrue(Math.abs(actual - expected) < 0.000001);
}
+142
if(!true) // это - не говнокод. это - заглушка.
return false;
Оправдывается ещё )
+67
public final class SomeActivity extends Activity {
@Override
protected Dialog onCreateDialog(int id) {
Dialog dialog = null;
if (id == DialogGenerator.SETTINGS_DIALOG) {
dialog = mDialogGenerator.createSettingsDialog();
} {
dialog = super.onCreateDialog(id);
}
return dialog;
}
@Override
protected void onPrepareDialog(int id, Dialog dialog) {
super.onPrepareDialog(id, dialog);
if (id == DialogGenerator.SETTINGS_DIALOG) {
mDialogGenerator.prepareSettingsDialog((AlertDialog) dialog, someBoolValue, someObjectValue);
}
}
}
public final class DialogGenerator {
public Dialog createSettingsDialog() {
int dialogId = SETTINGS_DIALOG;
int titleId = R.string.settingsTitle;
String[] itemsArray = getStringArray(R.array.settings);
ThreeTypeOptionsAdapter adapter = new ThreeTypeOptionsAdapter(mControllerAsActivity, itemsArray,
mCheckableOptions, mTwoTextOptions);
AlertDialogCallback dialogCallback = new AlertDialogCallback(mControllerAsDialogHost, dialogId);
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(mControllerAsActivity);
dialogBuilder.setTitle(titleId);
// костыль
dialogBuilder.setSingleChoiceItems(itemsArray, 0, null);
// конец костыля
dialogBuilder.setAdapter(adapter, dialogCallback);
AlertDialog dialog = dialogBuilder.create();
setMainListenersOnDialog(dialog);
dialog.getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
return dialog;
}
public void prepareSettingsDialog(AlertDialog dialog, boolean someBoolValue, String someStringValue) {
//костыль
ListView dialogList = dialog.getListView();
dialogList.clearChoices();
dialogList.setItemChecked(POSITION_FOR_BOOL, someBoolValue);
//конец костыля
ThreeTypeOptionsAdapter adapter = (ThreeTypeOptionsAdapter) dialogList.getAdapter();
adapter.setAdditionalValue(POSITION_FOR_STRING, someStringValue);
}
}
Задача: показать диалог, внутри которого есть 3 типа ячеек: выделяемые с чекбоксом справа, невыделяемые с дополнительной надписью справа, обычные невыделяемые.
Примерно так:
Use GPS checkbox
Selected country Russia
Launch some activity
В комментах к методам я описал костыль:
Здравствуйте, дорогие друзья. Сегодня мы с вами поговорим об уникальном виде животных, которых открыли только в конце XX века. Это, дорогие друзья, Ява-обезьяны. Давайте дружно откроем сырцы Андроид-СДК, а именно - класс com.android.internal.app.AlertController .AlertParams - и метод createListView(AlertController). Видите, одна обезьяна решила, что нам будет удобней, если диалог автоматом задисмиссится, когда мы щёлкнем по элементу списка в CHOICE_MODE_NONE, и OnClickListener будет не null? А теперь давайте перейдём в android.app.AlertDialog.Builder. Видите, там другая обезьяна решила, что для multi-choice списка нам не потребуется хитроумный адаптер? Поэтому, дорогие друзья, когда мы поставили кастомный адаптер (setAdapter()) и сопроводили его слушателем, то какой бы мы choice mode не ставили после AlertDialog.Builder.create(), диалог дисмиссился. Поэтому, дорогие друзья, пришлось пойти на хитрость и вначале установить single choice (чтобы флаг mIsSingleChoice стал true), а потом уже ставить адаптер.