Size: a a a

Kotlin Community

2020 November 03

IP

Iaroslav Postovalov in Kotlin Community
Alexander Nozik
И проблема не в градле. Градл сам конфигурируется мгновенно. А вот синк в идее висит по 20 минут
а, тогда не знаю
источник

IP

Iaroslav Postovalov in Kotlin Community
у меня синк в идее не деградирует
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Postovalov
у меня синк в идее не деградирует
У меня на kmath тоже нормально.
источник

D

Denys in Kotlin Community
Alexander Nozik
Ни у кого больше нет подвисания градл синка на многомодульном мпп проекте?
Было в трёх вариациях:

- новые модули / изменения в текущих не подтягивались - ничего не работает как положено

- вечный синк, но всё остальное работает - похоже на проблемы с многопоточным обновлением состояния

- во вкладке грейдла совсем пусто, но всё работает

В первом случае иногда помогал только реимпорт проекта с удалением папки . idea
источник

AN

Alexander Nozik in Kotlin Community
Denys
Было в трёх вариациях:

- новые модули / изменения в текущих не подтягивались - ничего не работает как положено

- вечный синк, но всё остальное работает - похоже на проблемы с многопоточным обновлением состояния

- во вкладке грейдла совсем пусто, но всё работает

В первом случае иногда помогал только реимпорт проекта с удалением папки . idea
Больше похоже на второе
источник

D

Denys in Kotlin Community
Alexander Nozik
Больше похоже на второе
Перезапуск иде помогает?
источник

AN

Alexander Nozik in Kotlin Community
Denys
Перезапуск иде помогает?
нет
источник

AN

Alexander Nozik in Kotlin Community
Каждый синк минут по 20. Причем в логе пусто. Просто уходит в астрал.
источник

ᴅᴍɪᴛʀɪʏ in Kotlin Community
как идиоматически проверить параметры конструктора?

например есть data  класс "Human" у которого есть возраст, при создании нужно проверить чтоб возраст был больше нуля, если нет то выбросить ошибку
источник

AN

Alexander Nozik in Kotlin Community
ᴅᴍɪᴛʀɪʏ
как идиоматически проверить параметры конструктора?

например есть data  класс "Human" у которого есть возраст, при создании нужно проверить чтоб возраст был больше нуля, если нет то выбросить ошибку
Вот для этого инит блок и сделан
источник

АА

Азамат Абдилов... in Kotlin Community
Всем привет, подскажите пожалуйста что лучше использовать если есть 4 условия? Т.е. выводить результат по опциональным вводным данным.
источник

D

Denys in Kotlin Community
Азамат Абдилов
Всем привет, подскажите пожалуйста что лучше использовать если есть 4 условия? Т.е. выводить результат по опциональным вводным данным.
when
источник

LS

Lev Shagalov in Kotlin Community
На основе котлиновского data class мне надо писать javascript
Как это покрасивей сделать?
источник

АА

Азамат Абдилов... in Kotlin Community
Denys
when
Уже делаю так. Хотелось бы оптимизировать, чтобы быстрее все таки. 4 опциональных input.
источник

AN

Alexander Nozik in Kotlin Community
Азамат Абдилов
Уже делаю так. Хотелось бы оптимизировать, чтобы быстрее все таки. 4 опциональных input.
Вы оптимизируете что?
источник

АА

Азамат Абдилов... in Kotlin Community
Alexander Nozik
Вы оптимизируете что?
На счет оптимизации громко сказано. Это больше о огром количестве строк, которые можно было бы сократить. Красивше хотелось бы.
источник

AN

Alexander Nozik in Kotlin Community
Азамат Абдилов
На счет оптимизации громко сказано. Это больше о огром количестве строк, которые можно было бы сократить. Красивше хотелось бы.
Код пожалуйста
источник

АА

Азамат Абдилов... in Kotlin Community
import org.springframework.stereotype.Service
import java.time.LocalDateTime

interface GetLogsByOptionalListsUseCase {
   suspend operator fun invoke(
       boardId: String,
       partnerList: Array<String>?,
       contentList: Array<String>?,
       labelList: Array<String>?,
       fromDate: LocalDateTime,
       toDate: LocalDateTime?
   ): Collection<ContentLog>
}

@Service
internal class GetLogsByOptionalListsUseCaseImpl(
   private val logService: LogService
) : GetLogsByOptionalListsUseCase {
   override suspend fun invoke(
       boardId: String,
       partnerList: Array<String>?,
       contentList: Array<String>?,
       labelList: Array<String>?,
       fromDate: LocalDateTime,
       toDate: LocalDateTime?
   ): Collection<ContentLog> {
       return when {
           (partnerList != null && contentList != null && labelList != null && toDate != null) ->
               return logService.getByBoardAndLists(
                   boardId,
                   partnerList,
                   contentList,
                   labelList,
                   fromDate,
                   toDate
               )
           (partnerList != null && toDate != null) ->
               return logService.getByBoardAndPartnersFromDate(
                   boardId,
                   partnerList,
                   fromDate,
                   toDate
               )
           (partnerList != null) ->
               return logService.getByBoardAndPartnerList(
                   boardId,
                   partnerList,
                   fromDate
               )
           (contentList != null) ->
               return logService.getByBoardAndContents(
                   boardId,
                   contentList,
                   fromDate
               )
           (labelList != null) ->
               return logService.getByBoardAndLabels(
                   boardId,
                   labelList,
                   fromDate
               )
           (toDate != null) ->
               return logService.getByBoardAndToDate(
                   boardId,
                   fromDate,
                   toDate
               )
           else -> logService.getByBoardAndFromDate(boardId, fromDate)
       }
   }
}
источник

АА

Азамат Абдилов... in Kotlin Community
источник

AN

Alexander Nozik in Kotlin Community
Азамат Абдилов
import org.springframework.stereotype.Service
import java.time.LocalDateTime

interface GetLogsByOptionalListsUseCase {
   suspend operator fun invoke(
       boardId: String,
       partnerList: Array<String>?,
       contentList: Array<String>?,
       labelList: Array<String>?,
       fromDate: LocalDateTime,
       toDate: LocalDateTime?
   ): Collection<ContentLog>
}

@Service
internal class GetLogsByOptionalListsUseCaseImpl(
   private val logService: LogService
) : GetLogsByOptionalListsUseCase {
   override suspend fun invoke(
       boardId: String,
       partnerList: Array<String>?,
       contentList: Array<String>?,
       labelList: Array<String>?,
       fromDate: LocalDateTime,
       toDate: LocalDateTime?
   ): Collection<ContentLog> {
       return when {
           (partnerList != null && contentList != null && labelList != null && toDate != null) ->
               return logService.getByBoardAndLists(
                   boardId,
                   partnerList,
                   contentList,
                   labelList,
                   fromDate,
                   toDate
               )
           (partnerList != null && toDate != null) ->
               return logService.getByBoardAndPartnersFromDate(
                   boardId,
                   partnerList,
                   fromDate,
                   toDate
               )
           (partnerList != null) ->
               return logService.getByBoardAndPartnerList(
                   boardId,
                   partnerList,
                   fromDate
               )
           (contentList != null) ->
               return logService.getByBoardAndContents(
                   boardId,
                   contentList,
                   fromDate
               )
           (labelList != null) ->
               return logService.getByBoardAndLabels(
                   boardId,
                   labelList,
                   fromDate
               )
           (toDate != null) ->
               return logService.getByBoardAndToDate(
                   boardId,
                   fromDate,
                   toDate
               )
           else -> logService.getByBoardAndFromDate(boardId, fromDate)
       }
   }
}
Я предложил все-таки на https://pastebin.com/, но ладно. Упростить это никак нельзя. Не говоря уже о том, что у вас код вообще неправильный. После выполнения одного услвоия, в другое оно уже не пойдет
источник