Описание тега kotlin-generics

0 ответов

Инфиксные функции Kotlin, использующие дженерики, не имеют принудительного типа

При использовании дженериков в инфиксных функциях это не похоже на принудительный тип infix fun <T> T.assertEquals(value: T) { assertk.that(this, equalTo(value)) } Следующий код компилируется и запускается "Some Value" asertEquals 1 Он достато…
16 авг '18 в 21:44
1 ответ

Дженерики kotlin только для потребителей

Давайте скажем, у меня есть этот пример Java: interface Sink<T> { void accumulate(T t); } public static <T> void drainToSink(Collection<T> collection, Sink<? super T> sink) { collection.forEach(sink::accumulate); } Обратите в…
05 сен '18 в 19:31
0 ответов

Несовпадение типов Kotlin с обобщениями в общих настройках

Я начинаю писать приложение для Android, используя Kotlin, и наткнулся на проблему, когда пытался написать универсальную функцию для обработки чтения из SharedPreferences Я читал о ! запись в документах Kotlin, но я до сих пор не знаю, как решить эт…
2 ответа

Почему Kotlin не может выполнять умный приведение между интерфейсом и производным от него универсальным типом?

У меня есть следующий класс: abstract class PresenterActivity<S : ViewState, I : ViewIntent> : AppCompatActivity() { open fun initViewIntent(): I { return object : ViewIntent{} // type mismatch on this line } } Я получаю сообщение об ошибке пр…
05 июн '18 в 17:19
2 ответа

Inferring параметр типа класса по умолчанию

У меня есть класс с конструктором объявлен так class Facade<T : SuperClass>( val kClass: KClass<in T> = SuperClass::class ) Это делается так, чтобы разработчику не нужно было указывать SuperClass, если он хочет использовать его вместо по…
06 фев '18 в 12:57
5 ответов

(kotlin) editText.toString().toInt() не работает в андроид студии

val editText1 = findViewById<EditText>(R.id.editText1); if(comNum != editText1.toString().toInt() ){ View4.text = "오답" } else View4.text = "정답" Установленный apk не работает. Я думаю edittext.toString.toInt неправильно.
19 июл '18 в 07:08
1 ответ

Почему нельзя использовать методы с одинаковыми именами, но с разными обобщениями?

Я довольно новичок в языке Kotlin, но я только что столкнулся с некоторым странным поведением, которого не было в других языках, поэтому я хотел спросить, почему я не могу сделать что-то вроде этого: fun <T> methodName() { // whatev~ } fun &lt…
20 апр '18 в 06:24
1 ответ

Вопрос об общих свойствах Kotlin

У меня возникли некоторые проблемы с Kotlin при переводе моего проекта Android из Java в Kotlin. Скажем, у меня есть интерфейс I и интерфейс O, который расширяет интерфейс I. interface I{ } interface O: I{ } И универсальный класс A, который имеет ун…
1 ответ

Передача только типов, отмеченных как reified, в общую функцию Kotlin

Допустим, у меня есть следующий код: open class Fruit class Apple : Fruit() open class Juice<T : Fruit> class AppleJuice : Juice<Apple>() fun <F : Fruit, J : Juice<F>> makeJuice(juiceClass : Class<J>, fruit : F) : J {} …
2 ответа

Kotlin Generics Ошибка в Java

Даны следующие три класса котлин: abstract class UseCase<T> { fun execute(action: Action<T>) { } } class ConcreteUseCase : UseCase<List<String>>() class Action<T> Я не могу скомпилировать следующие строки в коде Java: C…
11 янв '18 в 22:46
0 ответов

Дженерики в Котлине (вопросы инвариантности и ковариации)

abstract class Injector<T:BaseView> { protected abstract val component: BaseComponent<T> open fun inject(target: T) = component.inject(target) } Моя цель - включить следующее: List<Injector<out BaseView>> injectors список, со…
13 фев '18 в 21:07
2 ответа

Общая функция в интерфейсе для возврата конкретной реализации

В интерфейс я хочу добавить функцию, которая возвращает объект конкретной реализации. Итак, с интерфейсом: interface Content { fun <???> cloneMe(): ? } и классы class Music: Content class Video: Content функция cloneMe() из Music класс должен …
13 дек '17 в 15:10
1 ответ

Kotlin и путаница дженериков

У меня есть немного Drawers с дженериками: abstract class BaseGeoDrawer<KEY : Any, GEO : Any, ITEM : Any> abstract class BasePolygonDrawer<KEY : Any, ITEM : Any>: BaseGeoDrawer<KEY, Polygon, ITEM> class TeamAreaDrawer : BasePolygon…
06 окт '17 в 11:33
1 ответ

Почему переведенный код Котлина жалуется на массив<BaseData>? быть массивом<out BaseData>

Наличие java-класса, использование androidStudio для перевода на kotlin. Получил ошибку и не уверен, как правильно ее перевести. Java-код: public class BaseDataImpl extends BaseData { private final BaseData[] translators; public BaseDataImpl(final B…
06 авг '18 в 15:27
1 ответ

Несоответствие типа Котлина

У меня есть вопрос об общих типах, подтипах и несоответствии между ними. У меня есть конкретные классы структуры и интерфейса. Я покажу вам и, пожалуйста, объясните мне, почему происходит несоответствие типов. Допустим, я готовлю свой MVP-фреймворк …
08 мар '18 в 22:05
1 ответ

Kotlin класс с обобщениями и реализации interfcae

Я использую Kotlin в Android развитие, и я хотел бы создать класс с двумя дженериками, один из них V должен быть дочерним классом Viewи класс также должен реализовывать некоторый интерфейс MyInterface, Как это сделать? Я пробовал что-то подобное cla…
11 май '18 в 22:29
1 ответ

Kotlin "из" и "в" и дженерики - правильное использование

Я пытался создать универсальную функцию сохранения данных бедного человека, которая бы взяла MutableSet класса данных и сериализовала его на диск. Я хотел бы что-то простое для создания прототипов, и я в порядке, вызывая "save()" на наборе так часто…
20 окт '17 в 17:27
0 ответов

Общая проблема Kotlin, должна быть подтипом Nothing

Я пишу простой Spring-тест на Kotlin и у меня ошибка компиляции с обобщениями, которые я не могу понять. Функция ниже: @Test fun actuatorRootReturnsOnlyAllowed() { val expectBody:WebTestClient.BodySpec&lt;Map&lt;String, Map&lt;String, Any&gt;&gt;, *…
1 ответ

Как создать класс с параметром self type в качестве интерфейса в kotlin

У меня есть элемент класса с параметром типа Self interface Element&lt;Self: Element&lt;Self&gt;&gt; { val rules: Set&lt;(Self) -&gt; Boolean&gt; } Как я могу теперь создать список с элементом в качестве параметра типа, потому что следующее, конечно…
02 мар '18 в 15:44
1 ответ

Могу ли я расширить Comparable<T> в Kotlin?

Я хотел реализовать min()/max() псевдонимы для котлина Comparable&lt;T&gt;coerceAtLeast()/coerceAtMost()если ничего больше для расширения интерфейса (я пока только расширенные классы). Я попробовал это: fun &lt;T&gt;Comparable&lt;T&gt;.max(other:T) …
17 июл '18 в 23:41