Size: a a a

Scala User Group

2021 August 26

GP

Grigory Pomadchin in Scala User Group
источник

D

Dmitry in Scala User Group
ох, блин
источник

GP

Grigory Pomadchin in Scala User Group
это обычный extends) не отличается никак от других
источник

GP

Grigory Pomadchin in Scala User Group
тут синтаксис что если экстендишь класс с конструктором то надо пихнуть в конструктор наследуемого класса поля необходимые
источник

D

Dmitry in Scala User Group
я чето это как хранилку статических методов почему-то воспринимал
источник

D

Dmitry in Scala User Group
спасибо большое!
источник

AO

Andrey Osnovin in Scala User Group
Practical FP in Scala
источник

AS

Artem Sokolov in Scala User Group
я сделяль
https://scastie.scala-lang.org/AZYIouCZSE2aAbsuuqyLyg

тоесть есть что-то у чего вызывают много часто do work, хочется чтобы это можно было дернуть откуда-то извне и запаузить старт новых выполнений
пытаюсь понять как можно сделать await некоего флага/значения, пока самое простое выглядит как промис

UPD: переделал в скати на RefM
источник

AS

Artem Sokolov in Scala User Group
при этом мне не нужен эксклюзив доступ, потому что мне не важно чтобы остальные не работали, мне важно чтобы новые не стартовали
источник

IZ

Ilya Zhavoronkov in Scala User Group
Всем привет! Есть класс на java

public abstract class Role {
   byte id;
   String prefixS;

   private Role() {
   }

   public Role(byte id, String prefixS) {
       this.id = id;
       this.prefixS = prefixS;
   }
}

От него наследуется класс на Scala

sealed abstract class RoleScala(val byte: Byte, override val prefixS: String) extends Role(byte, prefixS)

При компиляции получаю ошибку.

overriding variable prefixS in class Role of type String;
[error]  value prefixS has incompatible type
[error] sealed abstract class RoleScala(val byte: Byte, override val prefixS: String) extends Role(byte, prefixS)

Можно это как-то разрулить? Со стороны java ничего менять не могу. Со стороны Scala это должен быть sealed abstract class. Может какую-то прослойку можно сделать.. Пробовал трейт завести от джавового класса, но не получилось.
источник

Oℕ

Oleg ℕizhnik in Scala User Group
А вам обязательно, чтобы поле так же называлось?
источник

IZ

Ilya Zhavoronkov in Scala User Group
очень желательно, чтобы в интерфейсе скаловом не было дублирующих полей с разными именами
источник

Oℕ

Oleg ℕizhnik in Scala User Group
можете просто написать
def prefix = prefixS
источник

Oℕ

Oleg ℕizhnik in Scala User Group
поле вроде package private, наследник должен иметь доступ
источник

Oℕ

Oleg ℕizhnik in Scala User Group
sealed abstract class RoleScala(val byte: Byte, rolePrefix: String) extends Role(byte, rolePrefix){
  def prefix = prefixS
}
источник

IZ

Ilya Zhavoronkov in Scala User Group
ок, спасибо, а что с оверрайдом не так происходит?
источник

Oℕ

Oleg ℕizhnik in Scala User Group
для scala val - это поле + метод, переопределить она пытается метод, а метода нет в жава, только поле
источник

IZ

Ilya Zhavoronkov in Scala User Group
понял, спасибо
источник

☭S

☭ ⤳ λ Shinkevich... in Scala User Group
Помогите лучше ДеГузу книгу по Зио дописать.... да прям с главами на русском :)
источник

TG

Tema Grinevich in Scala User Group
ну хотяб стримы дописали бы
источник