【发布时间】:2016-07-02 03:40:27
【问题描述】:
我试图在test.scala 中使用Factory.java 中的getDatasID。
//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> { ... }
我在 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])
两个类都显示相同的错误。
- 推断的类型参数
[Nothing, Nothing A[Key, Value, [K, V]Datas[Key, Value]]]不符合...[K,V,T <: Datas[K,V]] -
类型不匹配
- 找到:
class[A[Key, Value, [K,V]Datas[Key, Value]]](classOf[A]) - 必填:
Class[T]
- 找到:
我想匹配类[Key, Value, Datas[Key, Value]]。最好的情况是
val targetB = new Factory()
.getDatasID(classOf[B])
以上代码有效。
【问题讨论】: