Этот тред для тех, кто пишет (или хочет научиться писать) на кроссплатформенном, свободном, и самом распространенном языке современности. Java это воистину простой как камень и потому бессмертный язык. Во время войны в Ираке, американские солдаты выбрасывали свои ЯП, и подбирали Java. Британские ученые провели исследование, в результате которого выявили 58 видов Java. Женщины Вестероса шьют флаги и слагают песни в честь Java. Как тут не оставаться равнодушным?
2. Я зануда и я хочу умные книжки. 1. Head First Java, (2nd Edition) : Kathy Sierra, Bert Bates - для совсем нулячих простым языком. 2. Core Java (9th edition) : Cay S. Horstmann, Gary Cornell - тоже для нубасов, но на серьёзных щщах. 3. Thinking in Java (4th Edition): Bruce Eckel - для тех, кто умеет в хеллоуворлд на другом языке. 4. Effective Java (2nd Edition): Joshua Bloch - для тех, кто знает язык, но хочет перестать писать костыли. Больше здесь: http://www.proklondike.com/books/java.html
7. Всё это хорошо, но без алгоритмов меня на работу не возьмут. Не беда, вот курсы от Принстонского университета: https://www.coursera.org/course/algs4partI То же самое но в бумаге: Роберт Седжвик, Кевин Уэйн - Алгоритмы на Java
Перезадам вопрос про ебаный Swing. Загружаю картинку баферед имедж. Жму кнопку, лейблу задается размер, как у картинки, затем картинка отображается в лейбле. Проблема в том, что кнопку вывода изображения приходится нажимать дважды. При первом нажатии картинка отображается в лейбле, но обрезается, а подгоняется размер только при втором нажатии. Развиваю ситуацию: загружаю картинку, жму кнопку, жму еще раз — картинка выведена и отображена корректно. Нажимаю другую кнопку, которая вешает на лейбл MouseListner, размер лейбла сбрасывается на начальный. Нажимаю кнопку еще раз — картинка принимает нужный размер, листнер работает. В принципе ничего особо страшного, но напрягает и не могу понять причину такого злоебучего поведения элементов. Эту залупу возможно как-то пофиксить? Может проблема в том, что форма и элементы созданы через конструктор свинга и мне нужно православно переписать все вручную?
>>571503 >> jButton1ActionPerformed >> jButton3ActionPerformed >> jLabel3 >> jLabel5 УБИВАТЬ УБИВАТЬ УБИВАТЬ ЗА ТАКУЮ ХУЙНЮ КАК ВЫ ЗАЕБАЛИ БЛЯТЬ ИЩИ ПОТОМ ОЧЕРЕДНОЙ BUTTON100500 НА FORM4 ПО ВСЕМУ ЕБАНОМУ ПРОЕКТУ УРОВНЯ LABA6 БЛЯТЬ
>>571603 >1. Новые фичи же, ты чё)))))) >2. Да, там вообще один файл, но это же цирк.
>>571604 Вот знаешь, прямо сегодня попробовал этот твой спейсмакс. Во-первых, в мануале сказано, что в шиндовсе нужно, чтобы %HOME% указывала на %USERPROFILE%. По умолчанию на %APPDATA%. И ебаться не нужно даже, просто в аппдату клонируешь репу и всё. Ну это хуй с ним. Неудобный он какой-то. Хоткеи не все из вима есть. Не хочу, короче.
>>571608 Сейчас запущу с виртуалки. А то знаю я этих кейгенописателей.
>>571605 В смысле? Если там тебе плохо, можешь юзать стандартные джавовские, там ещё легче. Вообще, jsoup создавался для парсинга DOM, не для создания запросов.
>>571615 >Новые фичи же, ты чё)))))) 15 идея вышла? >Да, там вообще один файл, но это же цирк Ну тогда сиди на эклипсе или в саблайме.
>>571611 Да просто осваиваю джаву и пытаюсь провернуть аналогичные вещи, которые раньше писал на питоне - всякие штуки, типа уведомлялок или музыко-загрузчиков. >>571618 >можешь юзать стандартные джавовские Либы для парсинга? И какие же это?
Встал пораньше и сразу за ИДешку, ебошить свой мега-крутой проект "ту-ду лист для даунов" на спринге с хайбернейтом. Целый день ебался с томкатами, тремя идеешками, структурой папок, расположением dispatcherservleta, мавеном и бог его знает чем. Уже 11 часов вечера а я в 50 раз конфигурирую структуру проекта. Охуенно, люблю программирование. П.С кто то может на пальцах объяснить как сделать форму входа используя Спринг-сесурити и хайбернейт? В интренетах какие-то огрызки информации.
Только поясните ещё нубу, как указывать запросы на кириллице в data("query","запрос") ? На инглише всё работает, а кириллицу переводит в восклицательные знаки.
>>571763 В моем случае книги оказались бесполезны(тем более индусские я не пробовал). Т.е я их читаю-читаю, а толку почти ноль. Лично я бы посоветовал вызубрить на память лекцию по джаве на интуите, пройти курс кодакадеми html/css и сразу js чтобы приблизительно понимать как оно вообще все устроено, и сразу садиться пилить свой проект.
>>571766 Кстати, а можно как-нибудь подключить стили, картинки в выходном документе? Я так понимаю, весь хтмл каким-то хитрым образом очищается от всяких внешних ссылок?
>>571759 Вообще, надо было начинать с Spring Boot.
1. Делаешь Hibernate entity User с атрибутами username и password. 2. Делаешь формочку на HTML/CSS/JS с шаблонизатором (рикамендую JMustache). 3. Создаешь контроллер для формочки. 4. В контроллер как параметр передаешь DTO формы. 5. Реализуешь интерфейс AuthenticationManager, который по username/password ищет в User. 6. Если есть, то создаешь новый DTO, который реализует интерфейс UserDetails и пихаешь его в SecurityHolder 7. Допиливаешь все до конца. 8. Вы восхитительны.
>>571795 Ой нет, надо создать новый AUthentication (UsernamePasswordAuthentication), и реализовать UserDetailsService который будет таскать UserDetails из БД
>>571795 Спасибо. Антоша, я что-то недопонимаю, как привязать hibernate User к контексту приложения. Ну то есть если аутентификация hibernate Usera прошла успешно, откуда мне потом брать данные для реализации бизнес-методов номального юзера с полями увлечения/контакты/сообщения? Т.е если еще проще - вот где мне(после того как я верну страницу аутентифицированному юзеру) брать Id и искать по нему в базе данные?
>>571998 b1a, b3a, l3, l5. Нахера длинные названия, ты тупой что ли и не можешь запомнить какая переменная за что отвечает? А так - код короче, читаемость выше.
>>572166 Нет, гвт это отдельный велосипед, а scalajs это просто интерфейс к джяваскрипту. То есть там можно, например, писать контроллеры под angular на скале: https://github.com/greencatsoft/scalajs-angular/blob/master/README.md Можно теперь написать на скале всё, вплоть до библиотек для node.js, и дополнений для браузера.
Читаю Шилдта. Дошел до Аннотаций. Поясните зачем это нужно? Что за надязык в языке? Потому что я чет прихуел от "давайка мы в коде возьмем эту хуйню которую писали перед ним и чёто с ней сделаем)))". Ну ладно там всякие @Depricated и @Override, но блять, собственные аннотации... короче я охуеваю, поясните, будь добры.
>>571795 Антоша, я целый день бился над этой хренью и так и не смог реализовать. Не мог бы ты поподробнее описать контроллер и какой DTO в него передавать? Пытаюсь взять за основу проект http://devcolibri.com/3810 вот этого чувака, но не могу написать контроллер который бы меня пробрасывал хоть куда-нибудь после авторизации. И да, у него там захардкожена реализация получения логина/пасса из базы, но на данном этапе мне все равно. Спасибо.
Блять, какого хуя? Есть синглтон. Есть у него поле интежер. Этот синглтон в одном из методов вызывает другой класс, который изменяет это поле. Но, сука, оно меняется только на время. Когда я выхожу из этого ёбаного метода, интежер остается тем же. Я заебался, в чем баг?
>>572708 блядь, ссылки на этот синглтон разные, лол окей, что я делаю не так? class Singleton{ public static final Singleton singleton = new Singleton; int yoba=0; void changeYoba(){ yoba++; } private Singleton(){} } abstract class abstractShit{ Singleton s = Singleton.singleton; } class fuckingShit extends abstractShit{ void fuck(){ s.changeYoba(); } }
>>572728 без мультитрединга http://pastebin.com/xXChHCUg вот, все нужные для понимания проблемы классы бага возникает при вводе "new game". вызывается parseLine, который находит нужный эвент (являющийся енумом с полем regex), потом передает это в delegateEvent, который потом распределяет это в нужный класс (GlobalMode, MapMode или BattleMod) в GlobalMode после долгой херни вызывается метод из самого Game startGame, который меняет значение gameMode. Но когда ты выходишь из всей этой каши и второй раз парсишь строку, замечаешь, что gameMode остался тем же
>>572699 У тебя какие-то абстрактные данные? Приложение, которое коннектится к любой базе и может вывести содержимое любой таблицы? А image с аватарой юзера ты как назовешь - image1 или fileImage (картинка же из файла загружена)?
А теперь немного обоссу. Если бы мейн у тебя был в другом классе, бага вылезла бы еще на этапе компиляции. Вообще, ты слишком увлёкся синглтонами, прекращай. Если попробуешь написать юнит-тесты, поймёшь почему это плохо. implements GameConstants - не делай так, есть же статик импорты. Объявляй переменные как Map, а не HashMap. Энумы тоже могут иметь методы.
>>572735 сссссссссссссука бля, точняк. спасибо, анон пиздец А че за статик импорты? И что плохого в синглотонах? Ведь hero и game (и еще куча, которых мне было лень сделать синглтонами) у меня будут только одними Алсо, предполагаешь, что нужно вынести мейн в другой класс?
>>572737 заменил new Game() на GAME и получаю теперь нулл поинтер эксэпшн, когда пытаюсь обратиться в GlobalMode к синглтону через game. Какого хуя то теперь?
>>572740 Смотри, что происходит. 1. Запускается мейн 2. видит p.s.f. game = new Game 3. вызывает конструктор 4. внутри конструктора идёт обращение к твоим mode'ам, инициализируется класс AbstractMode и наследники. 5. в AbstractMode копируется значение game - но посмотри на второй пункт - конструктор ещё не завершился, переменная пустая.
>>572785 Два варианта: Либо сначала инициализировать синглтон game, а уже после этого вызывать на нём fillModeToExecutor, но тогда нет гарантий, что подобная штука не вылезет в другом месте; Либо передавать this в fillModeToExecutor и в конструктор AbstractMode. Опять-таки, такая же хрень может вылезти ещё где-то, в итоге будешь передавать синглтон везде параметром, и толку от того что он синглтон? Кстати, ты уже передаёшь его в hero.init. Кстати2, в джаве вместо init-методов есть конструкторы. Это уже как бы признак того, что hero не должен быть синглтоном.
>мотрю вакансии в Харькове - всего несколько штук и везде нужен пздц опыт. Может всем подряд компаниям резюме рассылать? Реально ли устроиться вообще? Мерзкий нытик. 1. Заведи аккаунт на линке. 2. Сделай для него нормальное наполнение, только на ангельском. 3. Попроси дуржков с двача перекрестно добавить друг друга и натыкать плюсов. 4. Добавь 9000 рекрутеров. 5. Обязательно разошли свой линкаккаунт(ссылочку на твой проект и на гит) с сопроводительным письмом (на ангельском, в письме перечисли весь свой путь обучения Джавы) во все конторы. Список найдешь на доу. 6. Обязательно прикрепить ПОРТФОЛИО проектов в которых ты учавствовал. При этом это должно быть что то выше уровнем чем программа учета книжек в библиотеке. Например сейчас можно получить опыт тут: https://docs.google.com/forms/d/1gwhSfGp3SyBXctFQ_VZQy4o9bbPY9Kw8ujbW4FuqhcU/viewform ... ГЕШЕФТ!!!1111
А вообще да. В Польше на порядок больше джуниорских вакансий чем в Украине. Но для того чтобы туда перектиться нужна виза на три месяца/полгода и небольшая жировая прослойка.
>>572985 Разве на ява есть фриланс? >>572980 > Обязательно прикрепить ПОРТФОЛИО проектов в которых ты учавствовал. Если бы они у меня были, я бы тут не сидел. > При этом это должно быть что то выше уровнем чем программа учета книжек в библиотеке. У меня и такого нет. > https://docs.google.com/forms/d/1gwhSfGp3SyBXctFQ_VZQy4o9bbPY9Kw8ujbW4FuqhcU/viewform Что-то я сомневаюсь что там нужны люди прочитавшие несколько книжек и с грехом пополам осилившие свой игрушечный todo list собранный с миру по нитке.
>>573003 ты - это не я. лол. Вот мой пост >>572959 > проект Можно запилить во время обучения, особенно учитывая что есть немало видеообучалочек, где делают что-то с нуля. Вот только сильно ли это поможет делу, если есть всего 3.5 вакансии, где нужен сеньор-пересеньор?
>>573003 >Разве на ява есть фриланс? Да. >Если бы они у меня были, я бы тут не сидел. >У меня и такого нет. Хули ты тут сидишь иди пиши апликухи. >Что-то я сомневаюсь что там нужны люди прочитавшие несколько книжек и с грехом пополам осилившие свой игрушечный todo list собранный с миру по нитке. Это ж волонтерский проект. Та нужны все потому что бесплатно.
>>572980 >Например сейчас можно получить опыт тут На днях смотрел кстати. Глянул бэкэнд и там в заданиях даже большинства слов не понимаю. Хз. Там по-моему только с немалым опытом нужны
>>573624 >ArrayList alA = new ArrayList(); >ArrayList alB = alA; >Если я изменю alB, изменится ли alA? Или = простое копирование? пидорас, ты охуел? А для копирования есть метод Clone() интерфейса Clonable ну или как там
Какие есть стандартные функции для прямого доступа к пикселям Image?
Нашел только MemoryImageSource, который вообще не понятно зачем, ни собственного массива данных не содержит, ни картинкой не является, просто лишняя ссылка с методом "смыть", перекачивающая данные из массива во внутрение массивы Image. Причем картинка, завязанная на этот класс, почему-то создается методом визуального компонента со "стандартным" представлением цветов. Без него никак? Вот в делфи у битмапа было что-то вроде scanline, возвращал указатель на начало данных указанной строки. Можно как-то получить доступ к массивам данных собственно Image?
И еще вопрос, мне одному кажется, что стандартные классы намеренно навороченны-усложнены?
Братишки, помогите мне сделать гребаную форму регистрации. Вот код http://pastebin.com/xfauUF02 Там контроллер и сама форма на два поля, плюс стек-трейс от сервака. Нихера не работает, не моу понять в чем дело. Спасибо.
>>573872 > root cause > java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'command' available as request attribute Дальше сам нагуглишь
>>573652 Анон, ты тут ещё? Я тебе православный способ принёс. BufferedImage image; ... int[] pixels = ((DataBufferInt) image.getRaster().getDataBuffer()).getData();
Это даёт тебе массив всех пикселей. Чтобы получать пиксели по x и y: pixels[x + y * image.getWidth()]
>>574139 Тут я. Повозился с дата-буффером, он в чуть более чем в два раза медленнее уродства через MemoryImageSource. Но и тот fps 100 не даст при выводе на полный экран, у него 50 на небольшом кусочке. И это без учета собственно подготовки массива и прочих действий.. Немножко disappointed.
Поясните по хардкору, зачем нужны геттеры и сеттеры? В Хед Ферсте этой теме всего страницу уделили, типа легко. А я вот ни хуя не могу понять, зачем они мне
Утро в хату. Есть потребность в написании следующего HQL-query: Внутри query создается некоторый объект, аргументом которого является исходная сущность, условно назовем объект dto. Далее фильтр по свойствам этого дто выбирает обжекты(не дто) из таблицы. Сам пока додумался только до чего-то вроде "select o from Object o where (new dto(o)).property == some ...". Не знаю пока, работает это или нет. Хотелось бы присвоить алиас дто, но не знаю как это сделать. Сразу напишу ответы, на очевидные вопросы: 1. У сущности нету этих полей, они достаточно сложно вычисляются. 2. По-другому сделать никак, т.к. джун-нюфак и пишу как говорят.
>>575160 HQL должен транслироваться в SQL, то что ты написал - не работает. Я бы попробовал найти способ хотя бы частично фильтровать по полям исходной сущности, а потом в DAO слое. Можешь еще посмотреть @Formula, возможно с ней получится описать поля, нужные в твоем dto.
>>575160 Я так и не понял на сто процентов, что тебе нужно, но если ты хочешь фильтровать записи, причем фильтры передаются как параметры, то в этом случае используют Criteria. У старого Hibernate есть свой Criteria, в новом поддерживается JPA-шный.
>>575121 Допустим надо тебе базу данных работников макдака создать, с полями - возраст, пол, етц. А кто работает в макдаке? Правильно, дауны-аутисты, и ты тоже даун аутист, не применяешь геттеры и сеттеры, в итоге, в твоей, базе возраст у всех минус 1945654 лет, пол рептилоид. Сэд, бат, тру, это я тебе примитивно показал.
>>575121 Суть в инкапсуляции. Класс написанный тобой должен быть долбоебоустойчивым. Ты не можешь контролировать чужой код, но ты можешь сделать свой высер безопасным. Сделать так что изменятся поля объекта будут только определенным образом. Методы буду вызваться только тогда когда необходимо. Вся опасная логика скрыта, а для внешнего пользователя предоставлены безопасные методы доступа к ней. Ты никогда не дашь перевести валюту с одного счета на другой без проверки баланса.
>>575268 Но, правильно ли я понимаю, что можно в классе, например, что значение переменной напрямую изменить, что через сеттер -- один хрен оно изменится, просто разными путями?
>>575274 В сеттере, ты можешь прописать логику один хуй так почти не делают и отсеять не подходящие значения. Да и в нормальные языки давно уже пропертя завезли.
>>575291 А, типа, написать, что переменная "bitardName" изменится только если новое значение != "Erokhin" или типа того? >один хуй так почти не делают То есть, можно вообще забить и вообще не юзать это? мимо-джава-ньюфаг
>>575121 Инкапсуляция же. Поля должны быть скрыты, чтоб в них со стороны не занесли какую-то лютую хуиту, поэтому обращение к ним должно быть организовано через гетеры/сетеры в которые можно поместить какую-то логику. А вообще продолжай учить и дальше сам прекрасно поймешь.
>>575299 Типа того. Например capaсity у эррейлиста: 1. Ты не хочешь, чтобы его меняли напрямую, потому что нужно при этом расширять/сужать массив. Делаешь его приватным и делаешь сеттер, в который и пишешь логику расширения массива и проверку, что тебе подсунули неотрицательное число. 2. У тебя есть класс, описывающий медицинские показатели человека (рост, вес и тд). Ты хочешь предоставить всем эти параметры, но не хочешь чтобы их кто-то менял. Также прячешь переменную или контейнер с ней, а пишешь публичный геттер.
Я тут декомпилировал один тырпрайзный проект, подправил буквально одно число, а скомпилировать обратно не могу, компилятор выплёвывает кучу дебильных ошибок типа "not a statement" и " illegal start of expression ". В чём тут подвох, несоответствие версий? С жабой знаком очень поверхностно к счастью, бгг.
>>575478 Где-то я видел, что есть противная утилитка, которая ломает исходники - меняет многие символы на похожие. Например, была точка и осталась точка, но вот если посмотреть по коду символа - абсолютно разные вещи. Возможно, этот декомпилятор делает что-то подобное, чтобы код не воровали.
Явисты, объясните простым языком в каких взаимоотношениях состоят tomcat, catalina и jboss? Потому что там родовые связи почище дворянских фамильных. Что часть чего, зачем вообще нужны 3 штуки этой хуйни, если, вроде как, во всех 3х всё та же жава, которая изображает вебсервер путём обвешивания её кучей надстроек?
>>575547 Tomcat и Catalina - одно и то же. Ты, наверное, хотел спросить про Glassfish, Tomcat и JBoss. Так вот. Tomcat - это просто контейнер сервлетов. Больше он не делает ничего. Его можно использовать сам по себе, например, для Spring'а. Glassfish и JBoss - это различные реализации Java EE API, которые используют в качестве контейнера сервлетов тот самый Tomcat + реализуют кучу-кучу всякой хрени.
Впрочем, я могу ошибаться насчёт "различные реализации Java EE API", поскольку на тырпрайз я особо не смотрел.
>>575633 > Tomcat 4.x was released with Catalina (a servlet container), Coyote (an HTTP connector) and Jasper (a JSP engine). Из этого предложения можно сделать два вывода: 1) Видимо, сначала был сервлет-контейнер каталина, потом он стал обрастать компонентами, все вместе решили назвать томкатом. 2) Это было так давно, что уже никто и не помнит.
>>575713 А если я напишу приложение, которое по кнопке будет качать видео с ютуба -- это норм?
Сколько просить денегПетр08/11/15 Вск 02:56:36#198№575728
Опыт разработки за деньги - 1.7года + 9 месяцев + 6 месяцев. Вышки нет. На последнем месте работы получал 65к в ДС2. В какой вилке лучше искать зарплату ? Опыт - недоконца уверенный мидл.
>>575927 Есть сайт - одностраничник. Например хуета на ангуляр-жс который отрисовывается жс-ом а данные берет с какого то своего рест-апи. Или еще какой сайт, на котором идет проверка умеет ли клиент ЖС.
Ну я попердолил HtmlUnit Но он отваливается изза ексепшена в лимите степени вложенности в js. Селениум же использует обычные браузеры.
Реально найти теплое местечко без знаний Spring/Hibernate? А то у меня на работе они почти не использовались, но зато почти во всех вакансиях требуют это дерьмо
>>576141 ну это как фундаментальная херня для жабы. Если ты два года проработал у тебя никто и спрашивать не будет, по дефолту считается что ты знаешь что это.
>>576147 че непонятного в тернарнике, вот что реально с толку собьет это instanceof. Первая мысль: нахуя проверять этот инстанс? Он может быть чем-то другим? Ну и давай искать чем он еще может быть.
Аноны, поясните за отладку в идее: есть проект с несколькими независимыми java-файлами. В одном из них ошибка, но в main class в запуске прописан из другого, не проблемного файла. Но запустится он не может, т.к. ошибка в первом файле. Как игнорировать этот проблемный файл при запуске?
>>576163 Cпасибо. Но как-то стремно после каждого запуска лезть в глубокие настройки и указывать файл, если нет зависимостей, могли бы и запилить игнорирование запуска автоматом.
>>576410 Я бы посоветовал апач. Очень много где используется. Либо дозер, но это уже фреймворк для маппинга. Очень удобная штука. На своём проекте (нашёл UI на двачах) только в путь маппит entity в dto, а сейчас ещё в userDetails пробую для Spring Security.
Анон, есть массив из 4 булевых значений. Мне нужно перегнать его простым способом в интовое число, не меняя интерпретации. То если есть { true, false, true, true}, на выходе мне нужно просто инт 1011.
>>577741 т.е. если я правильно понял " Returns an array containing all of the elements in this set; the runtime type of the returned array is that of the specified array." То для того чтобы вытащить все объекты одного типа, допустим Obj1
Obj1 obj[] = new Obj1; HashSet<Object> allObjects //содержит все объекты obj = allObjects.toArray(obj)// тут окажутся копии всех объектов одного типа Obj1?
>>577752 хм... Направь пожалуйста по какой теме читать доки чтобы понять set = set.stream() .filter(o -> !(o instanceof Obj1)) .collect(Collectors.toSet()); Заранее спаибо.
На самом деле, всё, что эта хрень делает - что-то вроде foreach. Берёт поочерёдно каждый элемента set'а, и затем, если он проходит по фильтру, отсылает его дальше - в штуку, которая обратно собирает все элементы (которые, конечно же, прошли) в новый Set. Ну и мы перезаписываем старый, потому что он не нужен этим вот самым присваиванием.
>>571481 (OP) Немного могу в ООП, делал лабы на VB.Net, прогал для себя на Питоне в стиле ООП (без паттернов), умею SQL на нубском уровне и в MS Access, лол. Из алгоритмов почти ниичего не знаю. За сколько реально дойти до уровня стажёра?
>>577763 Спасибо мил человек. Всего самого тебе хорошего и светлого, и даже если сейчас в жизни пасмурно и грустно чтобы все прошло и у тебя все стало хорошо.
Антошки, я знаю тут есть те кто могут в спринг сесурити. Пытаюсь рендерить страничку "хэлло" после регистрации. Если в контроллере просто возвращать страницу то все гуд. Но я пытаюсь вложить в модель аттрибуты юзера и у меня пстоянно ошибка томката, даже не исключение. Пробовал так: ---public String showHomePage(@AuthenticationPrincipal User customUser) Тогда юзер customUser null, у него все поля неинициализированы ---public String showHomePage(Principal principal) principal.getName() выводит верный e-mail, но если пытаться вытащить юзера из репозитория то опять ошибка томката. Репозиторий привязываю @Autowired, и приложение развертывается как надо и регистрирует пользователя, но на этапе выдачи страницы "хэллоу" выдает error. ---Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); User custom = (User) authentication == null ? null : (User) authentication.getPrincipal(); Так тоже ошибка томката на этапе выдачи страницы. В чем может быть дело?
>>577819 >>577820 Нихуя не понятно. Навскидку: Читай стектрейсы. Непонятно как происходит собственно аутентификация. SecurityContext должен содержать класс, реализующий интерфейс Authentication. User - это твой класс или из Spring Security? Где Model или ModelAndView? Сделай свой DTO для формы, вытаскиваешь оттуда нужные поля формы, которые будешь аутентифицировать при помощи своего AuthenticationManager, перекладывать в Authentication и совать в контекст
>>577834 Юзер мой, с дополнительными полями. DTO тут не нужен, я не собираюсь принимать от пользователя данные, Model добавил. Пользователь УЖЕ аутентифицирован, я даже могу получить его email через вызов principal.getName(), но эта сука не дает в контроллере вызвать userService.findUserByEmail(email) - а почему я понять не могу. Это точно не ошибка связывания или еще чего то, потому что страница логина и регистрации рендерится нормально.
>>577845 Вот такая штука: > Request processing failed; nested exception is org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: net.petrikainulainen.spring.social.signinmvc.user.model.User.notations, could not initialize proxy - no Session
Добро пожаловать в Hibernate!Аноним10/11/15 Втр 21:50:46#265№577859
>>577849 В гугле забанили что ли? > LazyInitializationException Ну и что тебе не ясно? Есть много путей обхода этой хуйни. Зачем тебе нужны notations в User?
>>577859 Еее!!! Поменял на EAGER и заработало. Если бы не твой совет посмотреть стек-трейс(точнее закомментить конфигурацию ExceptionHandlera) я бы еще сто лет ебался с этой хренью и скорее всего броил нахрен. Алсо я вообще нуб и ньюфаг, только-только начинаю понимать как оно все работает.
>>577870 Понял прикол с разными фетчами? При ленивой загрузке, поля этого Entity на самом деле нет. Когда ты дергаешь геттер, Hibernate делает запрос к БД и отдает ответ. А LazyInitializationException возникает, потому что сессия хибернейта закрыта и он не может обратиться к БД. Eager это значит, что значение поля notations грузится сразу - это удобно, но к сожалению оче страдает производительность, потому грузится целая коллекция для каждого entity. Так что смотри наперед.
Открыл ваш "синькин ин жава", понял, что знаю всё, что там написано. Где мне устраиваться джуниором за 10к$? Что мне почитать следующим? В шапке всё для совсем ньюфагов
>>577908 Кстати Вот хиккоблядок из одноглазников публично обсирает хиккоЦП, мол там говнокод.
Кстати посмотрел видосики этого андрея пангина. бля. ну это просто типикал всратый омежка аутист. даже жалко его стало. мог бы с его ЗП тыщи тянок ебать, но нет он выглядит как уеба, голос как у уебы, и сам уеба. типикал жабамакака
>>578315 Эффектив джава - там по большей части о том, как разрабатывать хороший АПИ, но много вообще о том, как правильно юзать всякие джавовые вещи типа сериализации, клонирования, коллекций и дженериков. Джава паззлерс - просто чтобы поохуевать. Дальше - а) читать книги по конкретным технологиям, которые тебе будут нужны; б) обо всякой архитектурной дряни типа паттернов, энтерпрайз-паттернов, юнит-тестирования и т.д.
>>571481 (OP) Остоебало возиться с js, пришло время перекатываться на java. Отсюда возникает ряд вопросов, с которыми я пришёл к гуру java программизма.
Итак мои вопросы 1. Насколько актуальная Java? Речь про поддержку новых технологий, графики.
2. Как сейчас дела у Java на могилках? Скажем, очевидно, что наступила эпоха C# вместе с Unity. Что там у явы?
3. Посоветуйте легковесный (не хуйбрейны) IDE, современный, быстрый, модный.
>>578449 >IDE >Легковесный Плиз. Если блокноты для недоязыков вроде руби с подсветкой синтаксиса, деревом файлов и списком функций по какому-то недоразумению называют IDE, то не думай, что и с нормальными языками дела обстоят так же. Начинай с нетбинса. Потом на идею. Эклипс - петушиный зашквар.
>>578449 >поддержку новых технологий, графики какая блядь графика? ява - бакэнд язык какие новые технологии нахуй? во фреймворках реализуют модные ныне http/2 и прочую хипстопарашу на хайпе.
>наступила эпоха C# вместе с Unity хули сюда зашел тогда наступатор?
>>578431 Хз, я "TDD by example" Кента Бека читал, считается букварем, но не могу сказать что мне сильно понравилась. Имхо лучше прочитать пару статей по ТДД вообще, по junit и mockito, и на практике самому попробовать, заставить себя недельку писать только по TDD, тогда проникнешься.
Ок, раз тут есть парочка опытных анонов, спрошу еще кое-что: делаю страничку создания некоторого события на jsp и на этой страничке блок выбора даты. Плюс валидатор который будет проверять дату как дату в будущем. У модели переменная типа joda DateTime, валидатор я знаю как написать, но не знаю какой тип брать в DTO и как собственно написать этот datepicker на странице. Кто-то сталкивался? Гугл советует лезть в jQuery, но для меня это темный лес, и непонятно в каком формате с этого jQuery будет приходить данные.
Джаваны скажите. А пилить свою имиджборду на спринге с хибернейтом это уже моветон? Или абулик одобрит? Ну там что андертоу в кач-ве ембедед сервера впихнуть, кеширование всего и везде, статику раздельно обслуживать?
Господа, есть вопрос, не совсем по джаве, но я не знаю, где спросить, если можете - ткните в нужном направлении. Дело в том, что мне нужно написать с нуля сорт оф интернет-магазин на джаве нет, я не собираюсь что-то продавать, это сорт оф учебный проект и в данный момент думаю о проектировании БД. Сначала я хотел ебашить все товары в одну таблицу, но товары могут быть разной природы и набор характеристик у них тоже будет разным. Можно создать отдельные поля с общими характеристиками (цена, габариты, вес) и одно текстовое, куда будут пихаться данные, индивидуальные для товаров (диаметр для дилдака, размер для куртки, бренд для модных дизайнерских трусов и тд). Это решение тоже хуёвое - если я захочу поставить дополнительные фильтры, скажем, позволить пользователю выбирать только красные труселя фирмы абибас - придётся очень дохуя парсить и вообще всё это будет работать невероятно медленно. Можно создавать по таблице на каждую категорию товара, но я не уверен, что это хорошее решение. Из более-менее разумных вариантов, которые мне пришли в голову: 3 таблицы - "товары", общие сведения вроде названия, цены и количества на складе - "категории", все категории товаров с айдишниками - таблица привязок, в которой будут содержаться айдишник товара, айдишник категории и значение Вроде всё будет работать, но выглядит это несколько громоздко, плюс поле "значение" будет всегда одного типа. В общем, хуй знает, вероятно есть способ сделать проще. Ну и ещё всё усложняется с тем, что я мало работал с БД и слабо представляю, какие операции будут накладными по ресурсам и чего следует избегать, а что - норма.
>>579282 Я понял. И нахуй так делать-то? Зачем читателя заводить в тупик? Используется переменная е, затем дается объяснение для чего используется переменная evt, затем используется evt, а через пол страницы используется опять e.
>>579252 В основном делают так: - таблица с товарами и общими для всех полями; - таблица с категориями. Тупо name и parent; - таблица с аттрибутами товара: productId, attributeName, attributeValue.
Дальше можно фантазировать и выносить отдельно тип аттрибута, его возможные значения, делать обязательніе аттрибуты для каждой категории, но обычно на это кладут. Алсо, скачай какой-нибудь быдло-OpenCart и посмотри на их схему для примера.
>>579289 Если тебя это заводит в тупик и ты старше 14 лет - то ничего хорошего это для тебя не значит.
>>579312 > EAV Но ведь родина дала тебе кучу нереляционных возможностей - наследование, избыточные атрибуты, типы JSON и XML. Нет, не хочу ими пользоваться, хочу жрать говно, под ормным соусом небось еще.
>>579314 >Если тебя это заводит в тупик и ты старше 14 лет - то ничего хорошего это для тебя не значит.
Ты глупец. Глупо и бессмысленно искусственно усложнять простые вещи в книге для начинающих. Если ты этого не понимаешь, то у меня для тебя плохие новости.
В принципе, твоя грамотность все и так о тебе сказала.
>>579252 Я бы на твоем месте взял и прикрутил ElasticSearch/Solr. В БД хранил бы только товары и дерево категорий. Все свойства товаров - в индекс. Это позволит сделать удобный фасетный поиск.
Антошки которые знаю хибернэйт, вы еще здесь? У меня новая запара, может чего подскажете. Суть в том что есть user и в нем хранится данные: имэйл, имя, фамилия и список покупок List<Item>. Покупка вынесена в отдельный класс и соединена с пользователем аннотацией ManyToOne. Когда я создаю пользователя то присваиваю ему имя, фамилию, имэйл и для поля покупки новый пустой аррай лист. Сохраняю в базу пользуясь методом saveAndFlush(user) интерфейса JPARepository<User, Long> который я унаследовал. Для управления покупками у меня отдельный сервис, в методах которого я сначала нахожу пользователя, вытаскиваю геттером его список покупок, что-то с ним делаю(удаляю, добавляю новую и.т.д), обратно присваиваю пользователю уже отредактированный список сеттером и сохраняю методом saveAndFlush(User user). Но проблема в том что когда я в другом контроллере заново нахожу пользователя и вытаскиваю его список покупок - у него он пустой! Вот то есть как будто я нихера не сохранял. Ошибок нет, логированием не могу найти то место где запара. В чем может дело? Кеширование? Еще что-то?
>>579864 И вообще, правильно ли так делать - искать юзера, брать его свойство, модифицировать и сохранять вместе с юзером, или надо напрямую долбиться в таблицу со свойством со сложным запросом и что-то там менять?
>>579880 а может надо создавать отдельный interface ItemRepository extends JpaRepository<User, Long> и уже у этого репозитория вызывать метод save(Item item)?
>>579887 короче попробовал сделать как в этом посте, создал новый интерфейс репозиторий и получил > HTTP Status 500 - Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: detached entity passed to persist: com.davach.User; nested exception is org.hibernate.PersistentObjectException: detached entity passed to persist: com.2ch.User
>>579887 Нет, по идее должно работать и так. Попробуй указать в классе Item на юзера аннотацию @JoinColumn(mappedBy = {тут впиши имя поля Item в классе User})
Ну хуй знает. Как то странно у тебя оно выглядит. Я лично вообще аннотации ставлю над геттерами полей класа ентити. А не над обьявлением полей. И работу с полем списка делаю не в контроллере, а в семом методе. И внешние ключи не листом а сетом делаю.
Например в твоем случае под геттером и сеттером items я бы добавил addItems (Item item) , delItems(Item item)
С содержимым типа метода public void addItems(Item item){ item.setUser(this); getItems().add(item);}
А методы уровня save для всего репозиторая оставляю на реализации самого репозитория по умолчанию.
>>580040 И разница между ними есть. Если бы использовал просто jpa с ентитиманагер, том нужно было использовать em.permit em.merge для сохранения энтити. А в случае спринг-жпа полоаину работы уде реализует репозиторий по умолчанию
>>579864 Поставь над методом сервиса аннотацию @Transactional. Используй Lombok для генерации геттеров-сеттеров-хэшкодов-тустрингов-билдеров. А иначе это пиздец.
>>580030 > И работу с полем списка делаю не в контроллере, а в семом методе. Ну это кагбе неправильно. Нужно разделять классы по назначению. Entity - просто пассивные классы, которые маппят атрибуты таблицы. Все простые CRUD-запросы выносятся в DAO/Repository. Вся логика делается в другом месте - сервисах.
>>580048 Алсо, все же не стоит делать Fetch.EAGER над List<Items>, потому что для каждого пользователя будет каждый раз выбираться целая коллекция (а их я так понимаю, будет не мало). Так что тебе придется поебаться с LazyInitializationException.
>>580048 Жаль, но аннотация не сработала. Кстати заметил что в логах есть такая строчка DEBUG - TaskServiceImpl - Saving item Item{id=null, label='Label', dateToExecute=2016-01-10T00:09:00.000+02:00, description='Desc', category=WORK, checked=false, user=null} to user [email protected] Почему-то не хочет сеттить юзера Item-у. _______________________________________
Ладно, всем спасибо антошки, попробую еще покопаться, если что - передалаю на Hibernate или еще что-то.
>>580062 И еще. Тебе сверху ссылку дал. Там четко написано про то что репозиторий сам реализует все find query get count методы по имени метода Достаточно описать интерфейс расширяющий репозитори, и все методы автоматом создадутся без необходимости писать их вручную.
Просвятите джуника (два года с десктопом работал, про ЕЕ только по телику слышал). Вот у меня есть приложение которое будет при запуске создавать тред, который является ботом но это уже детали. Ну и нужно что бы этот апликейшен на томкате вертелся. Ничего умнее чем запускать тред в методе init() сервлета я не придумал. Есть ли для этого какие то менее дибильные решения?
Чуваки, качаю Java SE Development Kit 8 с сайта оракла, запускаю инсталяшку, потоv потом даю ему доступ вносить изменения на компе и нихуя больше не происходит.
Привет котаны. Хочу с веб backend на java. Пробовал Play! Framework. Но там пиздец какой-то с документацией. Всё что ни пробовал запускать из примеров, нихуя не работает. Может есть тут адепты сего фреймворка? Ну или мне стоит перекатиться на spring? Там проще со всем этим?
>>580290 > из примеров Я надеюсь ты про второй Play - нормально там все, берешь активатор, генеришь проект из шаблона - работает. Если хочешь совсем просто, то бери какой-нибудь микро-фреймворк - Jodd, Pippo, Spark. А вот у Spring да, проблем с документацией нет.
Таки сделал. Спустя почти 12 часов yebli. Суть в том что когда я создавал новый Item, то не сеттил ему юзера, т.е Item получался бесхозным. Интересно конечно решать такие задачи, но бесплатно я бы этим никогда бы не стал заниматься. >>579864 кун
Только сел изучать джаву. С понятием класса разобрался. Что такое объект понятно - это экземпляр класса. И все бы хорошо, но автор книги вдруг начинает оперировать понятием "экземпляр объекта". Это одно и то же, что и экземпляр класса?
>>580983 Так почему же этот червяк пишет не "создаем объект" или "создаем экземпляр класса", а создаем "экземпляр объекта". Я прекрасно понимаю, что класс по своей сути тоже представляет объект, но зачем он это делает?
>>580993 Ни за чем. Возможно, косяк переводчика (если книга на русском). Нет, серьёзно, в этом случае подразумевается "экземпляр объекта"="экземпляр класса".
Господа, вопрос Предисловие: нужно написать жадный алгоритм для коммивояжера. Метод, который на скрине, запускается изначально с CurrentVertex = 0 и когда он заходит в первый for, j = 0 и дальше он идет, разве он не должен по всем значениям j пройти то есть до 4 Где я накосячил? Сам код http://pastebin.com/Bf2F2bqp
>>581771 У тебя в конце цикла рекурсивный вызов этого же метода. Пока он не выйдет из рекурсии, цикл не перейдёт на следующую итерацию. И, несколько я вижу, твой код будет мучить нулевую вершину, пока не выпадет со StackOverflowError.
Репостну из закрепленного треда. Там видимо никто не знает или мой вопрос слишком нубский.
Коданы, решил на гласфише сайтец попробовать зделать, но уже при первом запуске сталкнулся с проблемкой - не видится извне. Гласфиш в принципе не видится снаружи или в нем что то настроить надо?
Аноны, херня слева очень похожа на JSON или что-то подобное, нет ли какого конвертера (не является это стандартным форматом данных) в правый вариант? Спрашиваю тут просто потому что. Парсер в принципе написать не проблема, просто ниже есть пара не совсем понятных моментов.
>>582457 Слева JSON, правда какой-то ебанутый - отдельный словарь для каждого поля зачем-то. Справа - какой-то самописный формат. Транслятор написать не проблема, если знаешь соответствие типов (на картинке справа после двоеточия очевидный тип значения, а слева этой инфы нет).
Есть один код, который никак не хочет мне расфосовать по полочкам ячейкам массива слова. Есть ли у кго алгоритм считывания строки, разделения ее на слова и загон отдельного слова в ячейку массива?
>>582433 Двачую уже отписавшихся. Хуеватая книженция. Много воды, все размазано. Ошибок дохуища, не только в коде. И не только переводчики постарались тут. Можно и отсюда кое-что дочитывать по теме, если не дошло из других. Но как основную, использовать не советую. Из переводных для нуба - Хорстманн более-менее. А так - учи английский, пригодится. Все источники и книги годные на нем. Переводы - все хуйня. Когда-то один анон писал, что собеседует джуниоров. И, если кто говорил, что по Шилдту учил - нахуй сразу. Такие дела.
Вот есть метод который принимает массив на вход и выводит его. Есть метод который просто выводит массив. Почему я не могу передать в первый метод второй метод?
>>583352 Ничего не понял. Короче, в джаве, если ты вызываешь методы или поля класса, по умолчанию подразумевается, что ты работаешь с текущим объектом. This нужен только в методах, где название параметра совпадает с названием поля класса, и тебе нужно использовать оба. Классический пример - сеттер.
>>583359 > This нужен только в методах, где название параметра совпадает с названием поля класса, и тебе нужно использовать оба. Классический пример - сеттер. Поскольку если не использовать this, то область видимости переменной будет ограниченна методом и ты будешь рабоать только с переменной, но не с полем.
>>583359 Спасибо за инфу, пошел оракл шерстить документацию. >Классический пример - сеттер. Ууу, на дворе 2015, а вы геттеры сеттеры все еще вручную пишите?
>>583368 Либо можешь использовать lombok либу, в ней есть аннотации, которые ты вешаешь на поля класса (@Getter, @Setter), либо на сам класс (@EqualsAndHashcode, @ToString)
>>583371 >>583368 Вообще на практике cсобеседовании норм если я сразу буду делать вещи в стиле Arrays.toString(arr) без ебли лишних велосипедов,а брать вот такие вот готовые методы objecta?
>>583374 В использовании стандартной библиотеки ничего плохого нет. Наоборот, большинство джунов не знают её достаточно хорошо и пытаются самостоятельно сделать то, что уже написано, так что, я считаю, это будет плюсом. Не большим, но плюсом. Писать велосипед нужно только если собеседующий дал пометку "не использовать стандартную библиотеку" (а такое бывает часто).
>>583384 >"не использовать стандартную библиотеку" (а такое бывает часто). Всегда бесили такие придурки, засрут мозг молодому, а когда реальная задача будет распарсить тот же json, такое блядь начнется, мама не горюй
>>583389 Все понимают, что это лишь способ проверить логику человека (другу, к примеру, давали задание, сделать из строки число без юзания стандартных либ. Хотя я тут хз, по-любому нужно использовать её для привидения из char в int), а в реальном мире просто пара минут гугла и нужная либа у тебя в кармане.
Ты все еще пердолишь массивы? Ну и мудак. Открой для себя коллекции, стандартные из concurent, из guava. Открой для себя stream-api. Это блядь КОРЕ ява !
А массивы и их пердоленье это байтоебство уровня си и ненужно
>>583402 Ну и что? У меня, например, в проекте, в одном месте используются массивы, и я пожалел что в своё время слабо с ними разбирался, поскольку тут нужно было гонять лист в массив каким-то осбым способом (toArray чёт не отрабатывал, уже не помню почему).
>>583437 Сразу так не скажу, но у HttpServletRequest метод getParamterMap возвращает Map<String, String[]>. Вот в таких ситуациях и нужно подстраиваться.
>>583996 Мужик, ты херней занимаешься, вот честно. Тупо просыраешь время. Человеку без опыта все эти книги как мертвому припарки. Скачай IDE, попиши хэллоу ворлды,потренируйся в sql комманды, прочти сэйджика чтобы хотя бы помнить названия алгоритмов и шли резюме на стажера. Потом как устроешься будешь читать и реально осознавать что ты читаешь и зачем оно надо(скорее всего не надо).
>>584059 Ну и сделай echo %PATH%, или как там у вас выводится переменная в консоль. Будешь знать, подхватилось ли твоё изменение. Если да - неправильный путь, нет - хуево сохранил.
Пацаны, вопрос по спрингу и мавену: есть модуль А, в нём модуль Б. В модуле Б в тест пакете лежит мок. Нужно его использовать из модуля А (в модуле А лежит тестовый апп контекст). Но модуль А не видит этот мок. Если положить мок в main пакет - видит. Из тестов - нет. Все контексты прописаны правильно.
>>584363 Кстати насчет английского. Я другой анон и тоже сейчас упарываюсь джавой. Несложную техническую литературу и документацию читаю более-менее норм, но сам не могу даже и двух слов связать. Можешь посоветовать что-нибудь?
>>585081 Самая большая проблема фриланса - что нужно въёбывать. Если тебе быдлоработа нужна только ради денег, а сам ты всю эту веб-парашу на хую вертел, фрилансить будет изнурительно. На топтале эта проблема усиливается на порядки. Лично моё мнение: стоит того, если деятельность, которой ты там будешь зарабатывать - это смысл твоей жизни.
Можно ли написать Юнит тест для класса который читает содержимое папки, так чтобы тест не зависил от реального существования этой директории и файлов в ней?
Тут, короче, аутист какой-то создал отдельный тред по джавараш, и пока я ему писал ответ, тред закрыли (и правильно). Репостну-ка я ответ сюда, не зря же писал, вдруг прочитает.
Прошел эту парашу до 20 левела, купив подписку за 2000 гривен по акции. Идиот. Сказать по правде - как земля. Как общее знакомство с миром программирования - норм, безусловно. Особенно учитывая, что до 10 бесплатно. Потом, если захочешь дальше, сделай пять рефералов и проходи еще месяц. Уверяю, ты заебешься раньше. Профиты: + довольно неплохо для понимания основ + много разных задач, бывают даже интересные + Java SE рассматривается довольно подробно
Подводные камни: - нихуя больше, кроме, собственно, SE не рассматривается. Ты ничего не сможешь нормального написать на основе только знаний, которые дает тебе курс. Нет, то, что они сознательно заставляют тебя погуглить - весьма неплохо. Я имею в виду, что десктопная джава мертва, а в нынешней версии курса ничего ни про веб, ни про EE, ни про спринги-хибернейты не рассказывается. То есть, ты надрочишься со всяким там вводом-выводом, потоками, сделаешь даже, возможно, пару "больших задач" (идут как раз после 20 левела), но разработчиком это тебя не сделает. - многовато стоит, особенно без акции.
А вообще хули я тут распинаюсь, курс до 10 левела бесплатный, иди сам пробуй.
>>585260 Директория хардкод или в параметрах? Во втором случае можно в тесте просто создать директорию с файлом или создать заранее и распространять вместе с тестом.
Поясните за оболочки базовых типов. При создании булевой переменной(Boolean), в конструкторе прописано её установка в какое-либо значение, если да, то в какое? И тоже самое ли происходит и с базовым типом?
Не могу сейчас проверить, сайт с онлайн-компилятором проебал.
Boolean(boolean value) Allocates a Boolean object representing the value argument.
Boolean(String s) Allocates a Boolean object representing the value true if the string argument is not null and is equal, ignoring case, to the string "true".
То есть как задашь, так и будет, если в конструктор кинешь булевое значение. Если кинешь строку, то всегда будет false, если только не напишешь true:
Если строкой, то в данной случае не сработает, ты же строку не в конструктор Boolean передаешь, а в массив. Получается, что ты объявляешь массив Boolean значений, а создаешь массив строк.
>>585910 Во-первых, ты уверен, что тебе нужен массив объектов, а не примитивов? Если таки примитивы подойдут, то есть несколько вариантов. 1) Хранить в массиве инверсные значения. Т.е. вместо boolean[][] viebanieMamki = new boolean[100][100]; сделать boolean[][] neViebanieMamki = new boolean[100][100]; 2) Использовать BitSet. Т.е. BitSet viebanieMamki = new BitSet(100 * 100); viebanieMamki.flip(0, viebanieMamki.size()); Или не делать flip, а поступить как в первом пункте. 3) Написать класс обертку, который бы содержал массив или BitSet, и сам бы делал необходимое инвертирование при get().
Ребята где почитать про мавен. Уровня про. Чтобы научиться не только депенсы тянуть но и сборку с деплоем прописывать. Например проектик на спринге чтобы парой команд собирать и вар и деплоить в разные контейнеры.
>>586193 Градл как то не очень распостранен в среде ЕЕ. Все проекты мавеном собираются в основном. Там и тестирование и дженкинсы и прочее. А с градлом только андроид студио вроде как завязана. Остальное на мавене и анте
Котаны сижу с проблемой уже часа 4, завтра дедлайн. Конвертирую в pdf через библиотеки itext и какого-то хуя во время компилирования эклипс выдаёт
Exception in thread "main" java.lang.StackOverflowError at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:684) at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:626) at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:461) at com.itextpdf.text.Font.getCalculatedBaseFont(Font.java:741) at com.itextpdf.text.pdf.PdfChunk.<init>(PdfChunk.java:209) at com.itextpdf.text.pdf.PdfChunk.<init>(PdfChunk.java:287) at com.itextpdf.text.pdf.PdfDocument.add(PdfDocument.java:481) at com.itextpdf.text.Phrase.process(Phrase.java:222) если я правильно понял ошибка в самой библиотеке itext? или я долбоёб?
>>586163 www.sonatype.org/nexus/resources/resources-book-links-and-downloads/ Сначала by example, потом reference. Палишь им почту, они присылают ссылки на скачивание бесплатно без смс.
Двощик, помоги плиз. Вопрос по JSTL, этот тред наверное ближе всего. Есть код: <c:forEach items="${group.tObjects}" var="childObj"> <form name="${childObj.id}" method="POST" action=""> <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/> <input type="hidden" name="targetid" value="${childObj.id}"> <tr class="tr-content"> <td><input type="checkbox" name="${childObj.id}"></td> <td><a href='javascript:document.forms["<c:out value="${childObj.id}"/>"].submit()' class="object-content">${childObj.name}</a></td> <td style="padding-left:10px;">${childObj.objectType.name}</td> <td style="padding-left:10px;">${childObj.objectType.description}</td> </tr> </form> </c:forEach>
По идее, он должен создавать формочку, а в формочке инпуты и <a href> с сабмитом. Но почему-то при нажатии на ссылку получаю вот такое: Uncaught TypeError: Cannot read property 'submit' of undefined
В исходном коде страницы на первый взгляд всё ок: <form name="11" method="POST" action=""> <input type="hidden" name="_csrf" value="3274dc36-3ff9-4a9e-a75b-ab40339e030c"/> <input type="hidden" name="targetid" value="11"> <tr class="tr-content"> <td><input type="checkbox" name="11"></td> <td><a href='javascript:document.forms["11"].submit()' class="object-content">Service 1</a></td> <td style="padding-left:10px;">Service</td> <td style="padding-left:10px;"></td> </tr> </form>
объясните пожалуйста ПОЧЕМУ У МЕНЯ ВЫЛАЗИТ ЕБАНЫЙ WARNING [http-nio-8080-exec-4] org.springframework.web.servlet.PageNotFound.noHandlerFound No mapping found for HTTP request with URI [/] in DispatcherServlet with name 'dispatcher' и как эту хуйню исправить
Анон, я даун. Скачал исходники с гитхаба, исправил две с половиной строчки, чтобы было как мне надо. Как мне теперь эти исходники скомпилировать и собрать в .jar-файл?
>>571481 (OP) делаю консольный чат на сокетах, возникла проблема:
на стороне сервера читаю new BufferedReader(new InputStreamReader(socket.getInputStream)) через readLine пишу new DataOutputStream(socket.getOutputStream) через writeUTF
на стороне пользователя читаю DataInputStream(socket.getInputStream) через readLine пишу DataOutputStream(socket.getOutputStream) через writeUTF
сервер с telnet'ом нормально взаимодействуют, сервер с моим клиентом нет, выводится первое сообщение со стороны сервера и более ничего
когда делал все через DataInputStream и DataOutputStream - сервер и мой клиент работали нормально, но у telnet'a была та же проблема пиздец
Может ли кто пояснить, что нужно что бы устроиться Джуниором в Украшке, что для этого нужно знать? ( Я полный нуб и изучаю около недели по книжкам в оп-посте, пишу всякие графические калькулятор в эклипсе и не знаю что делать дальше)
Ананасы, учу джаву и балуюсь с всякими коровскими вещами, пробую, эксперементирую. Ну и без гуя, в консоли это делать как-то скучно, а гуй сразу и побольше задач откроет для практики. Так собственно что использовать для гуя лучше? В плане актуальности (хотя гуй на джаве это дела такое, да, никому нахуй не нужное), но все же. Что выбрать? Rак я понял есть два вариант swing и javafx. Что лучше выбрать? И посоветуйте учебного материала для этой технологии.
нужна помощь есть суперкласс, есть его 2 подкласса нужно сделать так, что бы у одного не было прямого доступа к изменению полей суперкласса, а другого был(т.е. фактически я буду вызывать в немогущем классе могущий что бы изменить поле суперкласса) протектед не поможет а как реализовать setAccessible() внутри класса я не знаю
>>594275 1) зачем? 2) через рефлекшн getField().setAccesible(true) А вообще, тебе бы обертку написать над классом (композицию ебани), у которого поля протектед, а потом от него наследовать.
Анон, все гайды перерыл, нужна помощь. Есть класс: class DoubleListElement{ DoubleListElement next; DoubleListElement previous; int dataX; int dataY; }
Создан объект dummy этого класса. Что происходит при вызове вида dummy = dummy.next? Он у меня NPE бросает на такой строке, хотя dummy не null Если что - я тут двусвязный список реализовываю, next - ссылка на следующий элемент.
>>598502 Раз npe, значит dummy null всётаки (ну или еще что-то где-то, что ты нам не скинул). Ты присваиваешь dummy поле next. Если бы даже поле был null, то NPE не было, а dummy стало бы null.
Во всех книгах класс называют шаблоном, а объект - конкретный экземпляр класса. Хорошо. Допустим имеется класс "1" и класс "2". Класс "1" - шаблон, а в классе "2" создается экземпляр класса "1". Чем тогда считать класс "2"? Шаблоном его не назовешь. Вызывающий класс? Тогда почему именно все классы называются шаблонами в книгах? Разве это корректно?
Ребята, ищу репетитора по джаве в дс2. Понимаю что возможно не по адресу, но все же. Я нулевый, немного умеющий в паскаль и прошедший три уровня джавараша даун. На первое время - гораздо проще учиться с кем-то. /id222290578 Telegram - @wegort
>>599821 Если у тебя при создании объекта класса "2" создаётся объект класса "1", то он просто родительский класс. А если ты в static-методе создаёшь объект другого класса, то он либо приватный, либо тебе руки оторвать надо.
Подскажите книгу по многопоточности на русском(переводить concurrency in practice уже сил нет) Посоветуйте материал по созданию дизайна на андроид(приложение написал, а дизайн кривой) Спасибо
Почему, когда я использую system.out.read(); То строку, которую я вбиваю в коммандной строке, воспринимается не как стринг, а как целочисленный инт. Че за хуйня?
0. Минимальный список технологий, которые нужно знать, чтоб взяли стажером: https://atlas.mindmup.com/2015/10/3d59a040592a0133d02a5d31ebcc5420/java/index.html
Цикл статей что в каком порядке учить: http://dou.ua/lenta/articles/java-beginner-guide-1/ (заблочен РосКомПозором, юзайте прокси)
1. Туториалы есть?
BEGINNER: http://myflex.org/books/java4kids/java4kids.htm
MEDIUM: http://www.tutorialspoint.com/java_technology_tutorials.htm
HARD: http://docs.oracle.com/javase/tutorial/
2. Я зануда и я хочу умные книжки.
1. Head First Java, (2nd Edition) : Kathy Sierra, Bert Bates - для совсем нулячих простым языком.
2. Core Java (9th edition) : Cay S. Horstmann, Gary Cornell - тоже для нубасов, но на серьёзных щщах.
3. Thinking in Java (4th Edition): Bruce Eckel - для тех, кто умеет в хеллоуворлд на другом языке.
4. Effective Java (2nd Edition): Joshua Bloch - для тех, кто знает язык, но хочет перестать писать костыли.
Больше здесь: http://www.proklondike.com/books/java.html
3. Я не умею читать и хочу видео
Пожалуйста http://dou.ua/forums/topic/8113/
http://habrahabr.ru/company/golovachcourses/blog/215275/
4. А где практиковаться?
Начните с бесплатных задач по данному языку: http://codingbat.com/java
Дополнительную практику можно получить здесь: https://www.codehunt.com/
Код играючи: http://www.codingame.com/puzzles
Рулеточка: http://postimg.org/image/xdfbvgps9/
Ещё задачки: http://eax.me/programming-language-learning/
Олимпиадка: http://acmp.ru/?main=tasks + acm.timus.ru
Простенькие: http://www.programmr.com/zone/java
5. Что насчет SQL?
Начни с малого: http://www.w3schools.com/sql/default.asp
Затем переходи к: http://www.sql-ex.ru/
В качестве чтива рекомендую: http://oreilly.com/catalog/sqlhks/chapter/
6. Java EE, Java FX:
https://www.youtube.com/channel/UCYTFfeXufxZM5pdC_OEmJwg
https://github.com/KriechelD/YouTubeChannel
7. Всё это хорошо, но без алгоритмов меня на работу не возьмут.
Не беда, вот курсы от Принстонского университета: https://www.coursera.org/course/algs4partI
То же самое но в бумаге: Роберт Седжвик, Кевин Уэйн - Алгоритмы на Java
8. Я готов к первому собеседованию.
Проверь свои знания здесь: http://www.quizful.net/test
И здесь: http://www.careercup.com/
Советы по написанию резюме: потеряли. Может, у кого есть скрин?
Прошлый тонет тут: