1
我想在Scala中使用Webgraph http://webgraph.di.unimi.it/框架。这里有一些定制Loader类的可能性。这个定制是通过反射来完成的。scala覆盖静态Java方法
...
graphClass = Class.forName(graphClassName); // graphClassName string name of class
graph = (ImmutableGraph)graphClass.getMethod("load", classOf[CharSequence]).invoke(null, is);
...
在java中“load”是类的静态方法,但我该如何在scala上编写此方法以允许我的代码工作? 我试图
class MyLoader {
def load(filename:CharSequence) = ...
}
甚至
object MyLoader {
def load(filename:CharSequence) = ...
}
与graphClassName = “MyLoader $”
但没有成功。
已知和可行的解决方案是编写bridge Java类,但是如果存在某种“合法”方式来执行此操作,则会很有趣。
// MyLoader.java
public class MyLoader {
public static ImmutableGraph load(CharSequence basename) throws IOException {
return new ScalaMyLoader(basename);
}
}