Size: a a a

2020 November 10

AK

Andrey Kuleshov in pro.jvm
Он в своём исходном примере хотел печатать лог, когда значение == null
источник

AK

Andrey Kuleshov in pro.jvm
Sergey 🖋
val opt = Optional.ofNullable(null)
opt.get()?.also {
   log.debug { "it" }
} ?: return
А тут печать, когда не null
источник

AK

Andrey Kuleshov in pro.jvm
Но я думаю, что @m1n1m разберётся. Принцип тот же.

Я бы в данном случае использовал “?.let {}”
источник

R

Roman in pro.jvm
Alex
Надеюсь со временем изменится ситуация ))
А зачем? Если надо - добро пожаловать в котлин
источник

A

Alex in pro.jvm
Roman
А зачем? Если надо - добро пожаловать в котлин
много на java написано )
источник

A

Alex in pro.jvm
Andrey Kuleshov
А тут печать, когда не null
Да тут get() вылетит с исключением похоже
источник

AK

Andrey Kuleshov in pro.jvm
Alex
Да тут get() вылетит с исключением похоже
Тебе просто нужно поставить знак вопроса после get()
источник

DK

Dmtr Klkv in pro.jvm
Есть мнение, что оракл интегрирует все фичи котлина в джаву постепенно. Типа они для этого и поменяли релизный цикл.
источник

AK

Andrey Kuleshov in pro.jvm
Стандартный принятый подход в котлине для работы с побочной дебажной печатью следующий:

Val a - nullable

a?.let {
  println()
}

Особенно если тебе не нужно использовать результат побочного значения
источник

AE

Alexandr Emelyanov in pro.jvm
Sergey 🖋
val opt = Optional.ofNullable(null)
opt.get()?.also {
   log.debug { "it" }
} ?: return
get() на пустом опшинал?)
источник

AK

Andrey Kuleshov in pro.jvm
Alexandr Emelyanov
get() на пустом опшинал?)
Да уже выяснили, можно расслабиться )
источник

AE

Alexandr Emelyanov in pro.jvm
Andrey Kuleshov
Да уже выяснили, можно расслабиться )
Ага, прочёл)
источник

S

Sulaymon in pro.jvm
Всем привет, кто-нибудь может сказать почему не работает вот такой код:
public abstract class AbstractService {

   public <R, T> R getToken(Map<T, T> map) {
       return null;
   };

}

public class ArticleService extends AbstractService {

 @Override
 public String getToken(Map<String, String> creds) {
   return creds.get("token");
 }

}
источник

S

Sulaymon in pro.jvm
ругается:
'getToken(Map<String, String>)' in 'com.concretepage.service.ArticleService' clashes with 'getToken(Map<T, T>)' in 'com.concretepage.service.AbstractService'; both methods have same erasure, yet neither overrides the other
источник

AE

Alexandr Emelyanov in pro.jvm
Вообще было когда то обсуждение считать Optional<T> в котлин как T?, на уровне компилятора, но не срослось)
источник

LP

Luger Parabellum in pro.jvm
Alexandr Emelyanov
Вообще было когда то обсуждение считать Optional<T> в котлин как T?, на уровне компилятора, но не срослось)
дичь какая
источник

AK

Andrey Kuleshov in pro.jvm
Sulaymon
Всем привет, кто-нибудь может сказать почему не работает вот такой код:
public abstract class AbstractService {

   public <R, T> R getToken(Map<T, T> map) {
       return null;
   };

}

public class ArticleService extends AbstractService {

 @Override
 public String getToken(Map<String, String> creds) {
   return creds.get("token");
 }

}
Мне конечно сложно с телефона эту дичь читать, но типа же нет для дженерика в оверрайде
источник

AK

Andrey Kuleshov in pro.jvm
Alexandr Emelyanov
Вообще было когда то обсуждение считать Optional<T> в котлин как T?, на уровне компилятора, но не срослось)
Жаль, я бы пользовался
источник

AE

Alexandr Emelyanov in pro.jvm
Andrey Kuleshov
Жаль, я бы пользовался
Там все не так просто и не тривиально, проще превращать в коде опшинал в налабл тип и обратно для передачи
источник

AE

Alexandr Emelyanov in pro.jvm
Самим
источник