Size: a a a

2020 July 30

ch

central hardware in learn.java
Сергей
Всем привет! Когда у нас аргумент Runnable, мы можем передать вместо его инстанса ссылку на метод this::method. Что со стороны Java тут происходит? Будет неявно создан Runnable в котором вызывается наша функция?
Так инстанс уже создан мы просто передаём ссылку на него
источник

S

Sergei in learn.java
central hardware
Так инстанс уже создан мы просто передаём ссылку на него
Вопрос в том, что метод ожидает ссылку на объект Runnable.
А когда мы передаём method reference - такого объекта как бы нет.
источник

P

Pan Kotek in learn.java
Всем привет, какую библиотеку лучше использовать для NotNull/Nullable аннотаций?
источник

DC

Denis Chikanov in learn.java
Pan Kotek
Всем привет, какую библиотеку лучше использовать для NotNull/Nullable аннотаций?
Сами по себе эти аннотации ничего не делают. Они используются линтерами как подсказки.
источник

Н

Николай in learn.java
Всем привет. Такой вопрос.
Есть простой сервер с REST API и jsp.
На нём две апишки:
1. Получить заметку и сохранить в БД
2. Взять заметку с бд и дать клиенту

JSPшка имеет этот же функционал.

В свою очередь на клиенте заметки сохраняются локально.

Скажем ситуация. Я на клиенте при остутствии доступа к сети отредактировал локальную заметку.

А потом ещё и через браузер используя JSPшку отредактировал эту же заметку только уже другим текстом.

Получается первоначальный текст заметки был изменён другим текстом с браузера. И на клиенте в локальном хранилище лежит заметка с уже третьим текстом

Позже на клиенте появилась сеть и нужно как-то синхронизировать эти данные. Есть какие идеи или роспостранённые подходы решения этой проблемы?
источник

DC

Denis Chikanov in learn.java
Николай
Всем привет. Такой вопрос.
Есть простой сервер с REST API и jsp.
На нём две апишки:
1. Получить заметку и сохранить в БД
2. Взять заметку с бд и дать клиенту

JSPшка имеет этот же функционал.

В свою очередь на клиенте заметки сохраняются локально.

Скажем ситуация. Я на клиенте при остутствии доступа к сети отредактировал локальную заметку.

А потом ещё и через браузер используя JSPшку отредактировал эту же заметку только уже другим текстом.

Получается первоначальный текст заметки был изменён другим текстом с браузера. И на клиенте в локальном хранилище лежит заметка с уже третьим текстом

Позже на клиенте появилась сеть и нужно как-то синхронизировать эти данные. Есть какие идеи или роспостранённые подходы решения этой проблемы?
Ну тут любые идеи и подходы упираются в "надо выбрать, какую из версий считать правдой". А если надо дать пользователю решить - ну при восстановлении соединения смотришь, какие там данные, при конфликте показываешь разницу и говоришь юзеру "вот они разные, выбирай, что тебе нужно".
источник

Н

Николай in learn.java
Denis Chikanov
Ну тут любые идеи и подходы упираются в "надо выбрать, какую из версий считать правдой". А если надо дать пользователю решить - ну при восстановлении соединения смотришь, какие там данные, при конфликте показываешь разницу и говоришь юзеру "вот они разные, выбирай, что тебе нужно".
спасибо. Я так и думал в принцыпе но надеялся на существование каких-то шаблонов, которые дали бы возможность избежать проблемы выбора)
источник

DC

Denis Chikanov in learn.java
Николай
спасибо. Я так и думал в принцыпе но надеялся на существование каких-то шаблонов, которые дали бы возможность избежать проблемы выбора)
Так какие тут могут быть шаблоны? Никто ж не знает, какие данные "правильные".
источник

P

Pan Kotek in learn.java
Denis Chikanov
Сами по себе эти аннотации ничего не делают. Они используются линтерами как подсказки.
Тогда стоит ли использовать NonNull от Lombok, который генерирует рантайм проверки на null?
источник

DC

Denis Chikanov in learn.java
Pan Kotek
Тогда стоит ли использовать NonNull от Lombok, который генерирует рантайм проверки на null?
Ну хочешь - используй, не хочешь - не используй.
Мне это кажется излишним, но каждому своё.
источник

PG

Pavel Glukhov in learn.java
Pan Kotek
Тогда стоит ли использовать NonNull от Lombok, который генерирует рантайм проверки на null?
смысл в том что подключать библиотеку ради одной проверки имеет мало смысла. но если она активно в проекте/приложении используется то почему нет.
источник

PG

Pavel Glukhov in learn.java
можно активно её функционал юзать
источник

АМ

Анатолий Моисеев... in learn.java
Всем привет. Есть вопрос. Возможно ли в java посредством рефлексии/проксирования перехватывать вызовы методов и подсовывать в вызовы нужные мне значения параметров? Если возможно, то буду рад любой доке/примеру. Что-то гугл ответов по теме особо не дает, поэтому все больше склоняюсь к тому, что нельзя
источник

GV

Gukov Viktor in learn.java
Анатолий Моисеев
Всем привет. Есть вопрос. Возможно ли в java посредством рефлексии/проксирования перехватывать вызовы методов и подсовывать в вызовы нужные мне значения параметров? Если возможно, то буду рад любой доке/примеру. Что-то гугл ответов по теме особо не дает, поэтому все больше склоняюсь к тому, что нельзя
ASM, например
источник

e

elefus in learn.java
Анатолий Моисеев
Всем привет. Есть вопрос. Возможно ли в java посредством рефлексии/проксирования перехватывать вызовы методов и подсовывать в вызовы нужные мне значения параметров? Если возможно, то буду рад любой доке/примеру. Что-то гугл ответов по теме особо не дает, поэтому все больше склоняюсь к тому, что нельзя
произвольного класса в уже работающей JVM?
источник

АМ

Анатолий Моисеев... in learn.java
elefus
произвольного класса в уже работающей JVM?
Бина, у которого есть некоторый метод проаннотированный моей аннотацией. Вот в этом методе хочу в рантайме подменить параметр
источник

Д

Дима in learn.java
в джабе есть апи для такого)
источник

Д

Дима in learn.java
источник

DC

Denis Chikanov in learn.java
Анатолий Моисеев
Бина, у которого есть некоторый метод проаннотированный моей аннотацией. Вот в этом методе хочу в рантайме подменить параметр
Можно. Но это не самая хорошая практика. Зачем?
источник

e

elefus in learn.java
Анатолий Моисеев
Бина, у которого есть некоторый метод проаннотированный моей аннотацией. Вот в этом методе хочу в рантайме подменить параметр
звучит как аспекты (Spring AOP / AspectJ)
или annotation-processor'ы с обработкой уровня RetentionPolicy.RUNTIME
источник