- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
public static
String readFile(String file) {
return Read.file( Reflection.getCallerClass(2), file,"\n");
}
public static
String readFile(Class c, String file, final String lineBreaker) {
return Read.stream(c.getResourceAsStream(file),lineBreaker);
}
3.14159265 22.10.2012 21:33 # +1
А всё из-за желания секономить 1 параметр при вызове фабрики.
roman-kashitsyn 22.10.2012 21:45 # 0
Я по умолчанию использую контекстный загрузчик классов...
3.14159265 22.10.2012 21:49 # +2
HaskellGovno 22.10.2012 22:17 # 0
roman-kashitsyn 22.10.2012 23:40 # +4
HaskellGovno 22.10.2012 23:45 # +2
>метод использует информацию о типе того, кто его вызывает, для того, чтобы понять, в какую ногу стрелять.
Впрочем, у кого что болит...
3.14159265 23.10.2012 20:03 # +1
давал сцылку на геймдев где предлагал программу с процедурами, которые ничего не возвращают.
А вот я тут подумал - если и аргументы тоже не передавать.
Ну и по старой-доброй традиции - расчет факториала без параметров.
http://ideone.com/dIycnd
3.14159265 23.10.2012 20:07 # 0
фабрика тянула ресурс, поднимала из него бин, начиняла и возвращала его. Удобно это тем, что настройки лежат прямо рядом с кодом, который их использует. В пику любителям контектов и всяких IoC.
И причем бин мог быть любого типа.
Трабла возникла лишь тогда, когда при рефакторинге вклинился лишний метод-прослойка с другого класса, в котором на беду тоже лежал файл с настройками. Кстати тот проект так и работает.
wvxvw 23.10.2012 01:39 # 0
bormand 23.10.2012 06:24 # 0
Получается что единичка - readFile, а двоечка - как раз тот кто его вызвал.
absolut 23.10.2012 07:22 # 0
wvxvw 23.10.2012 10:27 # 0
bormand 23.10.2012 10:34 # 0
Lure Of Chaos 23.10.2012 09:53 # +1
а потом ресурсы у меня перестали находиться.
внимание, вопрос: почему?
bot 23.10.2012 10:00 # +1
Lure Of Chaos 23.10.2012 11:12 # 0
roman-kashitsyn 23.10.2012 18:41 # +3
Lure Of Chaos 23.10.2012 23:08 # 0
3.14159265 23.10.2012 20:24 # 0
вариантов тут может быть несколько.
<extrasence>
ты вызвал из наследника (который в другом пакадже) метод родителя, и ожидал что оно возьмет ресурс наследника.
</extrasence>
Как я понимаю Class.getResourceAsStream попил много крови не только из меня.
Lure Of Chaos 23.10.2012 23:24 # 0
пакадже) метод родителя, и ожидал что оно
возьмет ресурс наследника.
да, это была ощутимая оплеуха от этих ООПешных загрузчиков, именно подстава с наследованием.
вторая была в том, что я один и тот же ресурс хотел грузить из разных классов в разных пакетах, но указывая относительный путь, приходилось всегда писать разные пути, особенно при реорганизации классов по пакетам.
и наконец, версия, приближенная к предположению @roman-kashitsyn, я не мог загрузить ресурс из отдельного jarика
это не считая таких мелочей, как сложности с получением пути пустого пакета (без класса), невозможность получить список этих ресурсов и т.д.
bormand 23.10.2012 20:43 # 0
Lure Of Chaos 23.10.2012 09:58 # 0
однако библиотека моих попыток целовать Жабу в зад еще цела