У меня есть класс Java, который принимает параметр универсального типа и объект класса, связанный с этим типом:Может ли Scalas manifest.erasure правильно набираться?
public class Foo<T> {
public Foo(Class<? extends T> type) {
...
}
}
Сначала я думал, что я мог сделать умную обертку для этого в Scala:
class Bar[T](implicit m: Manifest[T]) {
...
new Foo[T](m.erasure)
...
}
но это приводит к ошибке компилятора похож на это:
error: type mismatch;
found : java.lang.Class[_$1(in value <local Bar>)] where type _$1(in value <local Bar>)
required: java.lang.Class[_ <: T]
class Bar[T](implicit m: Manifest[T]) { new Foo[T](m.erasure) }
Я думаю, я понимаю, почему это происходит, но есть ли способ, которым я мог бы получить совместное rrect тип класса и сделать этот код компилируемым?
Как всегда, ответ был слишком прост. Благодарю. – ripla