Articles of generics

Error de compilation de Kotlin werid relacionado con los generics y el molde de tipo automático

Creo que este fragment de código debe comstackrse: package bug import java.lang.reflect.* data class Descriptor(val clazz: Class<*>, val modifiers: Int, val info: List<String>) { constructor(clazz: Class<*>, modifiers: Int, vararg info: List<String>) : this(clazz, modifiers, mutableListOf<String>().apply { info.forEach { this@apply.addAll(it) } }) } private val AnnotatedElement.info: List<String> get() = getAnnotation(Info::class.java)?.values?.toList() ?: listOf<String>() annotation class Info(val values: […]

Restricción de generics Kotlin

Quiero hacer una class que pueda aceptar un tipo genérico limitado, de modo que mi class solo pueda aceptar la subclass de alguna class en particular. Pero sin tantos elencos. Mi código se ve así: open class SomeClass<V> where V : SomeType { private val vc: PS<SomeType> = PS.create() protected val z: ZQ<V> = vc.doSmt(-1).map […]

Genéricos de Kotlin: Aplicación de una interfaz para MVP

En el siguiente ejemplo, entiendo que BaseActivity no se puede suministrar como el argumento de presenter.onAttached , aunque implementa la interfaz BaseView, que parece que es lo mismo que V. Se puede suministrar una presentación a Presenter en una subclass de BaseView, por ej. MainPresenter<MainView> , lo que significa que BaseView no es lo suficientemente […]

Kotlin generics wildcard con extender

Por lo tanto, he estado tratando de implementar algo de Java en Kotlin, y me enfrenté al desafío de pasar arguments a los methods de class generics wildcarded. Por ejemplo: interface A class B<in T : A> { fun pass(e: T) { /* do something */ } } class C { private val things = […]

Cómo especificar un parámetro de tipo que no sé

Reduje mi problema a la siguiente demostración mínima: interface Property<T : Comparable<T>> fun <T : Comparable<T>> parsePropertyValue(property: Property<T>, value: String): T = TODO() fun test() { val property: Property<*> = TODO() val value = parsePropertyValue(property, "test") } La llamada a parsePropertyValue no se comstack, con el post de error "No se puede inferir el parámetro […]

Kotlin generics issue

El error ocurre al pasar this a onResume . De alguna manera, no reconoce que this implementa ActivityLifecycleType . ¿Me falta algo? open class BaseActivity<ViewModelType: ActivityViewModel<*>>: RxAppCompatActivity(), ActivityLifecycleType { protected var viewModel: ViewModelType? = null @CallSuper override fun onResume() { super.onResume() viewModel?.onResume(this) ==> Error Requinetworking Nothing, Find BaseActivity<ViewModelType> } } open class ActivityViewModel<in ViewType: ActivityLifecycleType> […]

Funciones de Lambda con comodines en Kotlin

Estaba mirando los ejemplos proporcionados por Google y encontré esta línea private final ArrayMap<Class, Callable<? extends ViewModel>> creators; Tengo problemas para averiguar cómo convertir ese Callable<? extends ViewModel> Callable<? extends ViewModel> en una lambda en Kotlin ¿Cómo voy a hacer esto? EDITAR: class ViewModelFactory(appComponent: AppComponent) : ViewModelProvider.Factory { private val creators: ArrayMap<Class<*>, () -> ViewModel> […]

¿Cómo creo una instancia de un tipo genérico?

Sé que esta pregunta ya se hizo antes, pero aún no he podido resolverla. Estoy tratando de crear una instancia de una class a través de un tipo genérico. He intentado esto: Class<VH>::getConstructor.call(parameter).newInstance() Pero recibo este error: I get this error for this method: Callable expects 2 arguments, but 1 were provided. También probé este […]

Kotlin: confusión con los generics

Realm devuelve una list de FooRealm . FooRealm es un Foo public class FooRealm extends RealmObject implements Foo Pero tengo un desajuste de tipo: Type mismatch: Requinetworking: Observable<List<FooRealm>> Found: Observable<List<Foo>> Cuando lo hago: override fun getFoo(): Observable<List<Foo>> { return Realm.getDefaultInstance().use { realm -> realm.where(FooRealm::class.java) .equalTo("bar", true) .findAllAsync() .asObservable() } }

Cómo acceder a los attributes / methods en el parámetro de class genérico

Nuevo para Kotlin viniendo de C #. Estoy intentando crear una class que incluya un object de class intercambiable a través de generics. En la class, me gustaría acceder a valores de attributes y methods de llamada en la class. Supongo que esto tiene que ser a través de algún tipo de mecanismo de reflexión. […]