Ich war Tring zu getDatasID
von Factory.java
in test.scala
zu verwenden.scala Mismatch & abgeleiteten Typ Argumente mit Java
//Factory.java
class Factory {
...
public <K, V, T extends Datas<K, V>> DatasID<T> getDatasID(Class <T> dataClass) ...
}
// C.java
public class C extends Datas<Key, Value> { ... }
verwenden ich zwei Klasse in scala getDatasID
//Test.scala
abstract class A[K, V, T[K, V] <: Datas[K, V]]
abstract class B extends Datas[Key, Value]
val targetA = new Factory()
.getDatasID(
classOf[A
[Key, Value, ({type T[K, V]=Datas[Key, Value})#T]
])
val targetB = new Factory()
.getDatasID(classOf[B])
Beiden Klassen zeigten gleiche Fehler zu laufen.
- abgeleiteten Typ Argumente
[Nothing, Nothing A[Key, Value, [K, V]Datas[Key, Value]]]
...[K,V,T <: Datas[K,V]]
Typenkonflikt
- gefunden nicht entsprechen:
class[A[Key, Value, [K,V]Datas[Key, Value]]](classOf[A])
- erforderlich:
Class[T]
- gefunden nicht entsprechen:
Ich möchte die Klasse [Key, Value, Datas [Key, Value]] zuordnen. Der beste Fall ist
val targetB = new Factory()
.getDatasID(classOf[B])
Der obige Code funktioniert.
Vielen Dank !! Es war sehr hilfreich! – MiaeKim
Ich habe gerade "Klasse C" in Java-Datei bei der Frage hinzugefügt. Was ist, wenn ich 'getDatasID' von' Klasse C' brauche? – MiaeKim
@MiaeKim Es ist genau das gleiche wie 'Klasse B'. –