나는 Frege을 시도해 왔으며, 내가하고 싶은 첫 번째 일은 자바 인터페이스를 구현하는 것이다.Frege에서 Java 인터페이스를 구현하는 방법은 무엇입니까?
어떻게 완료 되나요?
package mypkg;
import frege.repl.FregeRepl;
import frege.runtime.Concurrent;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
public class FregeMain implements BundleActivator {
public FregeMain() {
}
@Override
public void start(BundleContext context) throws Exception {
System.out.println("Frege Bundle activated");
new Thread(() -> FregeRepl.main(new String[ 0 ])).start();
}
@Override
public void stop(BundleContext context) throws Exception {
System.out.println("Frege stopping. Goodbye!");
Concurrent.shutDownIfExists();
}
}
는 프레게에서 이것을 구현하기 위해, 내가 알고 있어야합니다 :
여기에 자바에서 내 예제 클래스가 구현 mypkg.FregeMain
전화로 볼 수 있습니다 뭔가를 선언하는 방법
BundleActivator
의 JVM 바이트 코드 (OSGi 프레임 워크가 해당 인터페이스를 구현하는 클래스에 대해 jar를 스캔하고 자동으로 호출하므로 이것이 중요 함을 알아 두십시오).Runnable
(아마도 하스켈 람다로)을 구현하고Thread
생성자로 전달하는 방법. 또한 동일한 문제 : Java 인터페이스를 구현하지만 이번에는 익명 클래스 또는 람다를 사용합니다.
입력 해 주셔서 감사합니다.
왜 이렇게할까요? Java glue 코드가 짧고 정확할 수 있습니까? – Ingo
나는 이것을하지 않을 것이다. 나는 단지 배우고 싶다. – Renato
나는 이해한다. 그래서 "인터페이스"의 개념은 실제로 Frege의 일부가 아닙니다. 따라서 위의 코드는 잘되어야합니다. 매우 특정 자바 특정 일을하기 때문에, 그것이 자바에 있다면 괜찮습니다. – Ingo