1
스칼라에서 Webgraph http://webgraph.di.unimi.it/ 프레임 워크를 사용하려고합니다. 여기에 Loader 클래스를 사용자 정의 할 수있는 가능성이 있습니다. 이 사용자 정의는 리플렉션을 통해 이루어졌습니다.스칼라 오버라이드 정적 자바 메서드
...
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) = ...
}
또는 graphClassName = "MyLoader의 $"
하지만 성공하지 않고 심지어
object MyLoader {
def load(filename:CharSequence) = ...
}
.
알려진 해결 방법은 브리지 Java 클래스를 작성하는 것입니다.하지만이를 수행하는 "합법적 인"방법이 있으면 흥미 롭습니다.
// MyLoader.java
public class MyLoader {
public static ImmutableGraph load(CharSequence basename) throws IOException {
return new ScalaMyLoader(basename);
}
}