
Andrey
16.04.2017
11:22:52
Давайте поизвращаемся. Как получить Class<T> в статическом методе?
ClassUtil<T> {
public static <T> Class<T> getClass() {???}
}
Или давайте расскажу пошире задачу. Я захотел сделать базовый класс для хибернейта, чтобы мочь делать someModel.save() или someModel.findById() и т.п. Дык для создания классов нужно иметь someModel.class, а получить Class<T> хз как.

Nikolay
16.04.2017
11:30:25

Pavel
16.04.2017
11:30:42

Google

Pavel
16.04.2017
11:31:01
Единственный вариант, передавай класс в аргументе

Andrey
16.04.2017
11:31:02

Pavel
16.04.2017
11:31:55
Или в конструкторе

Andrey
16.04.2017
11:32:09
Но походу нужно сделать промежуточный метод actions, и оттуда всё делать.

Pavel
16.04.2017
11:32:15
FindById(user.class,I'd)

Nikolay
16.04.2017
11:32:59

Pavel
16.04.2017
11:33:05
То есть сигнатура будет Class<T> clazz, Long id

Nikolay
16.04.2017
11:33:21
У тебя статический метод в родительском классе

Andrey
16.04.2017
11:33:22

Nikolay
16.04.2017
11:33:43
Статические методы не наследуются

Andrey
16.04.2017
11:34:11
Хм... Пора всё таки выучить полностью джаву.

Берял
16.04.2017
11:53:16

Google

The mirror
16.04.2017
11:56:06
Эм, как это? Рантайм то у них одинаковый? И type erasure для Class<T> действует одинаково, или я не прав?

Берял
16.04.2017
11:56:55

The mirror
16.04.2017
11:57:20
В scala очень хитрый компилятор, который многое позволяет и наверняка такую штуку тоже, но чтобы прямо в рантайме ... хм

Nikolay
16.04.2017
11:57:33
скорей бы dotty

Берял
16.04.2017
11:58:01

The mirror
16.04.2017
11:58:47
но это же не рантайм, inline и reified просто инлайнит код лямбды в функцию и поэтому можно предсказать какой класс будет в рантайме
хотя, если исходить от цели - то да - мы с помощью компилятора можем получить класс в рантайме

Берял
16.04.2017
12:00:22
ну инлайнит с конкретным типом, несмотря на дженерик, поэтому для каждой функции этот тип в рантайме можно получить как T::class

Snow
16.04.2017
12:51:06
А ео отправляют из юсы или из рф?

Степан
16.04.2017
13:36:15
Всем привет. Знает кто может как в рантайме менять структуру таблиц в бд? Интересуют готовые средства для этого.

Igor
16.04.2017
13:36:52
Ты Entity хочешь менять?

Степан
16.04.2017
13:37:12
Пока что только таблицы. Но энтити тоже.
Такое возможно вообще?

James Tiberius Kirk ?
16.04.2017
13:37:46

Igor
16.04.2017
13:37:47
Ну таблицы просто меняешь и всё, там же никаких ограничений

James Tiberius Kirk ?
16.04.2017
13:38:02
я не знаю ответа на вопрос, просто интересно

Степан
16.04.2017
13:38:33
@igorz не понял, ручками что ли?

Андрей
16.04.2017
13:38:56
Просто таблицы - JDBC + SQL

Igor
16.04.2017
13:39:29

Степан
16.04.2017
13:40:36
А нет вариантов с spring data например. Хибернейт там все дела. Я jdbc не очень то хотел использовать, базы разные могут быть.

Google

Степан
16.04.2017
13:41:07
Или без native query вообще никак?

S
16.04.2017
13:41:25
У Hibernate/JPA может сам накатывать DDL скрипты
Только лучше так не делать

Ivan
16.04.2017
13:48:21
> Я jdbc не очень то хотел использовать, базы разные могут быть.
и что?
пиши на ansi sql

Евгений
16.04.2017
13:48:55
парсь dbf

Ivan
16.04.2017
13:48:57
ааа все понял сори мой фейл

Евгений
16.04.2017
13:49:00
только хардкор!

Ivan
16.04.2017
13:49:03
создание таблиц разное езде

S
16.04.2017
14:12:33
Вопрос - поменял имя в git config и в Idea в настройках Github. Сделал Git push - репозиторий на Github создался, а затем ошибка permission denied про предыдущего пользователя. Что я делаю не так?
Ладно не важно, проще было почистить ключи

Nikolay
16.04.2017
17:20:55
Знатоки scala подскажите как сделать generic factory method в скале что-бы это можно было нормально использовать)
Сейчас так
abstract class Service[RS, RQ] {
def run(params: RQ): Future[RS]
}
abstract class ServiceFactory {
def createService[RS, RQ, S <: Service[RS, RQ]](serviceClass: Class[S]): S
}
Имплементирую ServiceFactory допустим guice-ом
Вызвать получается только передав все generic параметры
servicesFactory.create[SomeResponse, SomeRequest, SomeService](classOf[SomeService]).run(SomeRequest()))
хотя SomeService наследуется от Service[SomeResponse, SomeRequest]

Nikolay
16.04.2017
17:21:20
Или где почитать об этом

Nikita
16.04.2017
17:25:13
@scala_ru

Митко Соловец?
16.04.2017
19:11:16
Я бы хотел в явке иметь кортежи и пары как базовые структуры языка
Зачем?
обсуждайте, господа

Andrey
16.04.2017
19:12:01
Ещё out аргументы как в сисярпе предложи.
Удобно же.

Pavel
16.04.2017
19:12:13
А что мешает написать свою реализацию кортежей и pair с блекджеком и шлюхами?

Google

Snow
16.04.2017
19:12:18
Чтоб из методов результат возвращать в кортеж
Я про уровень бызового языка

Admin
ERROR: S client not available

Andrey
16.04.2017
19:12:32

Snow
16.04.2017
19:12:41
Клепать дто для возврата приходится
Хотя они и не нужны
Пар в яве нет

Andrey
16.04.2017
19:13:02

Митко Соловец?
16.04.2017
19:13:16
ща он тебе тулзу с завода пошарит

Snow
16.04.2017
19:13:25

Andrey
16.04.2017
19:13:51
Любой фремворк
Эм? Давай конкретику? Так как фреймворк любой, то пример тебе не составит труда составить.

Snow
16.04.2017
19:13:56
А вообще это был вопрос отграмматике языка
Почему в яве нет кортежей и пар

Andrey
16.04.2017
19:14:06
Не увиливай.

Snow
16.04.2017
19:14:11
На уровне языка

Anton
16.04.2017
19:14:12
Из Котлина убрали кортежи, и норм

Andrey
16.04.2017
19:14:24

Anton
16.04.2017
19:14:30

Igor
16.04.2017
19:14:36

Pavel
16.04.2017
19:14:52

Google

Anton
16.04.2017
19:14:54
ну это классы. такие можно и для жавки написать

Snow
16.04.2017
19:14:55
Там пары иммутабельны?

Pavel
16.04.2017
19:15:08
Что Pair, что Triple

Snow
16.04.2017
19:15:12
Кортеж же иммутабелен. Легковесен

Anton
16.04.2017
19:15:22

Andrey
16.04.2017
19:15:29
Там пары иммутабельны?
Дружище, пример строгой необходимости пар будет? Класс хотя бы с 2 методами, где нужны разные dto.

Igor
16.04.2017
19:15:29

Anton
16.04.2017
19:15:44

Oleksandr
16.04.2017
19:15:53

Snow
16.04.2017
19:15:56

Andrey
16.04.2017
19:15:59

Igor
16.04.2017
19:16:31