- 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
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
package gargoyle.xenox.game;
import gargoyle.util.log.Log;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
@SuppressWarnings("rawtypes")
public abstract class Persistent<T extends Persistent> implements Serializable {
private static final long serialVersionUID = 1L;
private File file(final Class<? extends Persistent> clazz) {
return new File(System.getProperty("user.home"), clazz.getName() + ".dat");
}
@SuppressWarnings("unchecked")
final protected T load(final Class<T> clazz) {
ObjectInputStream in;
try {
in = new ObjectInputStream(new FileInputStream(this.file(clazz)));
return (T) in.readObject();
} catch (final IOException e) {
Log.error(e);
} catch (final ClassNotFoundException e) {
Log.error(e);
}
return null;
}
final protected void save(final T o) {
ObjectOutputStream os = null;
try {
os = new ObjectOutputStream(new FileOutputStream(this.file(o.getClass())));
os.writeObject(this);
os.flush();
} catch (final IOException e) {
Log.error(e);
} finally {
try {
if (os != null) {
os.close();
}
} catch (final IOException e) {
Log.error(e);
}
}
}
}
tr00_gr1m_doomster 21.02.2011 23:17 # −1
gegMOPO4 22.02.2011 12:22 # +3
brainstorm 21.02.2011 23:59 # +1
Lure Of Chaos 22.02.2011 00:02 # 0
brainstorm 22.02.2011 00:06 # +2
Lure Of Chaos 22.02.2011 00:12 # 0
а. замыканий как не было, так и нет - анонимные классы едва заменяют их в извращенном виде
б. директив для компилятора как не было, так и нет (имею ввиду препроцессор и всякое такое). Аннотации это не совсем то, поскольку инфа может быть доступна или недоступна и в рантайме
кстати, аннотации и генерики - это очень вкусно. Я рад, что они появились, особенно генерики.
но вот с ужасом ожидаю, во что превратится 7ая версия - обещали тучу путающего сахара.
brainstorm 22.02.2011 00:34 # 0
да типа новые возможности и тд. но нужно ли это приторное говно в ЯП в принципе?
tr00_gr1m_doomster 22.02.2011 09:52 # 0
brainstorm 22.02.2011 10:26 # 0
tr00_gr1m_doomster 22.02.2011 10:52 # 0
а компилятор случайным образом выбирает какой вариант многозначного кода выполнять
>> понятность исходного кода
на любом языке можно совершенно непонятную хуиту написать
>>вбивайте свой говнокод на перфокарты
щас, только JVM на перфокартах спаяю
brainstorm 22.02.2011 11:02 # 0
обязательно выложите ее в опенсорс
istem 22.02.2011 12:05 # 0
А он потом изобрел электричество..."</cite>
brainstorm 22.02.2011 12:08 # 0
istem 22.02.2011 12:12 # 0
Помыслите, немножко, абстрактно
tr00_gr1m_doomster 22.02.2011 12:26 # +1
gegMOPO4 22.02.2011 12:27 # 0
eth0 22.02.2011 19:00 # 0
Lure Of Chaos 22.02.2011 19:02 # 0
TarasB 22.02.2011 14:43 # 0
i=++i+++i;
brainstorm 22.02.2011 16:12 # 0
Lure Of Chaos 22.02.2011 16:14 # +2
Анонимус 22.02.2011 19:54 # +3
сишник имеет мнение на счет того, как должен работать код, даже если компилятор не уверен.
пхпшник не очень уверен как работает его код даже тогда, когда интерпретатор в этом уверен
bugmenot 22.02.2011 19:59 # +1
Анонимус 22.02.2011 20:28 # 0
Если существует 48 способов решить одну и ту же задачу, то языку это только во вред.
Анонимус 22.02.2011 20:26 # +1
правда в жабе например нет делегатов как в C#, которые еще хуже, потому что они -- замаскированное говнецо.
в любом случае жаба, при всем ее минусах, сейчас является наименее дерьмовым языком для целого ряда задач, в основном конечно для энтерпрайз
gegMOPO4 22.02.2011 12:28 # +1
Анонимус 22.02.2011 15:29 # 0
замыканий слава богу там нет
аннотации -- да, говно и понос, но и без них пока можно.
вот комманда javaee верит в аннотации, потому javaee никто и не использует.
а замыканий, варов, и прочей сишарп поебени там нет
Lure Of Chaos 22.02.2011 16:02 # 0
koodeer 22.02.2011 18:41 # 0
absolut 22.02.2011 18:47 # 0
koodeer 22.02.2011 19:09 # 0
Анонимус 22.02.2011 19:03 # 0
koodeer 22.02.2011 19:10 # 0
А применение var даёт сокращение кода - разве это плохо?
И как без var с анонимными типами быть?
Анонимус 22.02.2011 19:12 # 0
2) указывать тот ифейс (или базовый класс) который он расширяет (как в жабе)
3) сокращать код это плохо. Потому что код должен быть легко читаемый. Иначе все функции были бы из трех-пяти букв, а переменные -- из одной.
koodeer 22.02.2011 19:45 # 0
Насчёт анонимных типов, думаю, сказать нечего? ;)
Анонимус 22.02.2011 19:47 # 0
>>Насчёт анонимных типов, думаю, сказать нечего? ;)
я сказал. посмотрите пункт 2. Вы просто видимо не поняли. Потому поясню на пальцах:
koodeer 22.02.2011 20:26 # 0
то что-то непонятно?
И не вижу анонимного типа в вашем коде.
ЗЫ: тонкостей Жавы не знаю.
Вижу перегруженный метод, но зачем так сделано - хз.
Если будет два объекта Runnable, с разными методами run, то как узнать, какой метод run у какого? Навести мышкой, и появится подсказка??
Анонимус 22.02.2011 20:33 # 0
рассказываю: в моем примере описан анонимный класс с интерфейсом Runnable и методом run, и ссылка на этот анонимный класс имеет тип runnable.
Теперь возьмем типовой пример вара, что бы понять что он -- дерьмо.
Обратимся для этого к microsoft. Ребята из редмонта продемонстрировали свой var таким вот примером:
http://msdn.microsoft.com/en-en/library/bb383973.aspx
какого типа тут item?
правильный ответ -- "я мышку на переменную наведу"?
var был придуман для поддержки linq, и без var действительно linq не сделать, но linq -- это другая, еще более ужасная чем var, гадость)
koodeer 22.02.2011 20:47 # 0
Ну да, linq - гадость. ФП - гадость, декларативность - гадость, МП - гадость.
Парадокс Блаба, нэ?
Анонимус 22.02.2011 20:59 # 0
>>Парадокс
вовсе нет. просто в мире микрософт принято ссать кипятком от любого изобретения. придумали реестр -- это же гениально!!
отказались от реестра в пользу .config файлов -- это же гениально!!
придумали enterprise library -- это же гениально!!
выбросили ее на помойку -- это же гениально!!
придумали ком -- это же гениально!!
объявили ком говном -- это тоже гениально
наверное по-этому коммерческий энтерпрайз и компании типа яндекса и гугла не спешат пересажиться на дотнет)))
koodeer 22.02.2011 21:30 # −1
Анонимус 22.02.2011 22:04 # 0
Я перешел на жабу с дотнета вполне осознанно.
Не нужно приписывать мне ПХПные комплексы "если я чего-то непонимаю -- значит это не нужно".
а вот Вам бы наверное следовало изучить еще что нить кроме C#, что бы знать альтернативные подходы к анонимным классам, например)
koodeer 22.02.2011 23:54 # 0
Дело в чём. Если внезапно в Яве появятся новые плюшки - станете использовать? Наверняка, да.
Если жизнь заставит перейти на Шарп (допустим, больше зарплату предложат, вакансий на жаве не будет) - будете использовать linq и т.п. или будете писать на C# под .net1.1? Думаю, ответ очевиден.
Добавлю. Заставит жизнь перейти на жабу - ныть не буду, что чего-то не хватает - буду работать.
Анонимус 23.02.2011 00:01 # 0
Читали "Совершенный код"?
Там есть чудесная фраза: "программируйте С ИСПОЛЬЗОВАНИЕМ языка а не на языке" . В джаве есть гавняшки, которые я не использую. Например CDI (депенденси инджекшен на аннотациях), потому что я считаю это нарушеним принципов DI.
>>Думаю, ответ очевиден.
Вовсе нет) Если бы мне было пофиг, чем заниматься -- трудовой путь мой был бы куда более прямой.
В независимости от языка и платформы (C# 2.0 мне кстати нравился кроме паричал классов и делегатов) есть вещи которые я объективно считаю злом
absolut 22.02.2011 21:09 # 0
Насчет сокращений, что лучше:
var it = container.begin() или
list<map<MegaSuperUltraType<AnotherMegaS uperUltraTypeType>, GigaTera100500Class> >::iterator it = container.begin() ?
gegMOPO4 22.02.2011 23:48 # +1
absolut 22.02.2011 23:59 # 0
absolut 22.02.2011 20:58 # 0
Анонимус 22.02.2011 21:00 # 0
компилятору, конечно компилятору
absolut 23.02.2011 00:00 # 0