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: […]
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 […]
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 […]
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 = […]
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 […]
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> […]
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> […]
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 […]
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() } }
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. […]