Size: a a a

Kotlin Community

2020 March 21

М

Максим in Kotlin Community
у меня на компе корректно проверяется, а в Playground  всегда true
источник

BV

Boris Vanin in Kotlin Community
Максим
думаю раз в компиляторе есть такие слова как inline fun <reified T> то он понимает что они значат
Конечно он понимает, но в рантайме всё равно нету
источник

IS

Ivan Sablin in Kotlin Community
Вопрос простой, но что-то в тупик поставил. Как выполнить код при инициализации класса до вызова конструктора родителя? Кейс такой. Наследуюсь от TextView, ему нужно передать attrsSet. Но после передачи они код же пустые, потому что был вызван recycle() в конструкторе родителя. Как мне достать из него нужные атрибуты до передачи в конструкторе родителя. В джава нужно было просто super поставить ниже своего кода
источник

QH

Quantum Harmonizer in Kotlin Community
Ivan Sablin
Вопрос простой, но что-то в тупик поставил. Как выполнить код при инициализации класса до вызова конструктора родителя? Кейс такой. Наследуюсь от TextView, ему нужно передать attrsSet. Но после передачи они код же пустые, потому что был вызван recycle() в конструкторе родителя. Как мне достать из него нужные атрибуты до передачи в конструкторе родителя. В джава нужно было просто super поставить ниже своего кода
Нельзя поставить super ниже свеого кода. Просто делаешь obtainStyledAttributes самостоятельно.
источник

IS

Ivan Sablin in Kotlin Community
Quantum Harmonizer
Нельзя поставить super ниже свеого кода. Просто делаешь obtainStyledAttributes самостоятельно.
Так я так и делаю вроде, в init вызываю метод, в котором достаю атрибуты как раз при помощи этого метода. Но у AttrsSet уже был вызван recycle()
источник

QH

Quantum Harmonizer in Kotlin Community
Ivan Sablin
Так я так и делаю вроде, в init вызываю метод, в котором достаю атрибуты как раз при помощи этого метода. Но у AttrsSet уже был вызван recycle()
код?
источник

IS

Ivan Sablin in Kotlin Community
MyView(context, attrs): TextView(context, attrs) {

Init {
   loadAttrs(attrs)
}

Fun load(attrs: AttrsSet) {
   Obtain(attrs)
}

}
источник

IS

Ivan Sablin in Kotlin Community
Сорри не у компа
источник

IS

Ivan Sablin in Kotlin Community
Но суть такая
источник

VP

Vladimir Petrakovich in Kotlin Community
Максим
typealias MyScope = Scope<String, String>

data class Scope<C,  S> (val someC: C, val someS: S)

val scope = MyScope(someC = "thisIsC", someS = "thisIsS")

val scopes: HashMap<String, Scope<*, *>> = hashMapOf()

inline fun <reified T> Any?.isType() = this is T

fun main() {

   scopes["muScopeKey"] = scope


   val result1 = scopes["muScopeKey"] is MyScope
   val result2 = scopes["muScopeKey"].isType<MyScope>()
   println("result2 $result2 ")

}
Вот как оно "работает"
https://pl.kotl.in/Dn5nKf_OV
источник

IS

Ivan Sablin in Kotlin Community
Я короче щас прям проверил, написал also у параметра в конструкторе и он мне выдал нужное значение, но если брать аттрибут в init, то он уже = 0
источник

QH

Quantum Harmonizer in Kotlin Community
Ivan Sablin
Я короче щас прям проверил, написал also у параметра в конструкторе и он мне выдал нужное значение, но если брать аттрибут в init, то он уже = 0
Приноси код в @android_ru, посмотрим
источник

М

Максим in Kotlin Community
Vladimir Petrakovich
Вот как оно "работает"
https://pl.kotl.in/Dn5nKf_OV
да, мы уже поняли что проверять тип дженерика бесполезно, спасибо
источник

VP

Vladimir Petrakovich in Kotlin Community
Максим
думаю раз в компиляторе есть такие слова как inline fun <reified T> то он понимает что они значат
Ну и да, это такое место, в котором Kotlin плох, это не должно было работать)
источник

VP

Vladimir Petrakovich in Kotlin Community
В джаве например такой фигни нет, если у тебя нет unchecked cast, с дженериками всё хорошо
источник

VP

Vladimir Petrakovich in Kotlin Community
Максим
да, мы уже поняли что проверять тип дженерика бесполезно, спасибо
Да, я слоупок 😂
источник

IS

Ivan Sablin in Kotlin Community
Дико извиняюсь, невнимательность, не правильный styleAttr, но все равно почему он не ресайклится после попадания в конструктор TextView?
источник

М

Максим in Kotlin Community
Vladimir Petrakovich
В джаве например такой фигни нет, если у тебя нет unchecked cast, с дженериками всё хорошо
всё равно котлин лучше😁
источник

QH

Quantum Harmonizer in Kotlin Community
Ivan Sablin
Дико извиняюсь, невнимательность, не правильный styleAttr, но все равно почему он не ресайклится после попадания в конструктор TextView?
потому что в коде что-то не так, очевидно, там какая-то ошибка
источник

QH

Quantum Harmonizer in Kotlin Community
Есть хоть одна причина, по которой "".split(whatever) — лист из пустой строки, а не пустой лист?
источник