PY4J с дженериками
Со следующим определением класса:
class MyClass[T : ClassTag]{
def this(stuff : T){
// ....
}
}
PY4J выдаст следующую ошибку:
py4j.protocol.Py4JError: An error occurred while calling None.MyClass. Trace:
py4j.Py4JException: Constructor MyClass([class java.lang.String]) does not exist
Если вы попытаетесь создать экземпляр с помощью:
myObject = _gateway.jvm.MyClass("string")
Я использую отражение где-то еще в моем коде для поиска конструктора по умолчанию, но у него есть подпись (java.lang.Object, scala.reflection.ClassTag)
, Я не думаю, что PY4J пытается найти его правильно. Я знаю, что он интенсивно использует отражение, но, возможно, он не подготовлен для таких случаев использования, как этот.
Или есть ли обходной путь для успешного создания экземпляра универсального класса, подобного этому?