Genéricos de Java en Kotlin: utilice el tipo de raw de Java como parámetro de método en Kotlin

Estoy viendo esta class en Facebook sdk:

public final class ShareDialog extends FacebookDialogBase<ShareContent, Sharer.Result> 

Quiero tener un método en Kotlin que acepte su class principal, similar al siguiente:

 fun shareToFacebook(shareDialog: FacebookDialogBase<ShareContent<*, *>, Sharer.Result>, activity: Activity) 

Pero cuando bash llamarlo desde Java:

 tournamentPresenter.shareToFacebook(new ShareDialog(this), this); 

Obtengo el error de time de compilation:

Error:(751, 45) error: incompatible types: ShareDialog cannot be converted to FacebookDialogBase<ShareContent<?,?>,Result>

PD. Sé que es mejor no compartir el dialog con el presentador, no voy a hacerlo, vamos a usarlo como ejemplo del problema

El problema es la firma de la class ShareDialog , que usa un tipo sin ShareDialog .

 public final class ShareDialog extends FacebookDialogBase<ShareContent, Sharer.Result> .................................^^^^^^^^^^^^ 

Y, a pesar de que el documento de Kotlin dice que usar * , en un nivel de VM que es equivalente a ? , un comodín. Dado que un FacebookDialogBase<ShareContent, Sharer.Result> no se puede FacebookDialogBase<ShareContent, Sharer.Result> a FacebookDialogBase<ShareContent<?, ?>, Sharer.Result> falla su llamada.

Sin embargo, usar un tipo sin formatting debe ser semánticamente equivalente al uso de comodines como parameters de tipo. Entonces podrías hacer el equivalente genérico de un elenco de reinterpretación:

 FacebookDialogBase<ShareContent<?, ?>, Sharer.Result> myVar = (FacebookDialogBase) new ShareDialog(this); tournamentPresenter.shareToFacebook(myVar, this); 

Y las cosas aún deberían funcionar de la misma manera.

  • Kotlin NullPointerException ocurrencia
  • Room Persistence @Relation trabajando en Java pero no en Kolin
  • Kotlin Elimina todos los caracteres no alfanuméricos
  • El parámetro especificado como no nulo es nulo cuando se usa Mokito anyObject () en la function Kotlin
  • En Kotlin, ¿cómo puedo groupBy tipo
  • Kotlin - lateinit TestRestTemplate no se inicializa para las testings de integración
  • Kotlin ejecuta en Android Studio error prompt "Gradle sync failed: Tiempo de espera agotado de la connection: connect Consulte el logging de IDE para get más detalles (Ayuda | Mostrar logging)"
  • Enfrentando problemas con la implementación de Rx Java con la architecture de flujo en Android kotlin
  • Error de falta de coincidencia del tipo Kotlin al pasar los arguments desde la terminal
  • "No hay suficiente información para inferir el parámetro T" con Kotlin y Android
  • Base de datos de android de Kotlin: no se puede convertir java.lang.String en android.database.Cursor