2011-03-19 3 views
2

JNI를 사용하여 일부 C 코드에 대한 Java 래퍼를 생성합니다.JNI 포인터 의존성을위한 디자인 패턴

a = make_a(); 
b = make_b(a); 

을 나는 다양한 작업과 함께 make_a()make_b의 출력에 대한 참조를 개최 class Aclass B를 사용하는 자바 측면에서이처럼 보이는 C 측에 대한 종속성이 있습니다. 또한 class Bclass A이 붙어 있습니다.

JNI 내에서 두 클래스 간의 종속성을 어떻게 만들 수 있습니까?

업데이트

I 클래스 B를 사용하는 동안 GC'd 수 없습니다에 클래스 A를해야하고, 나는 JNI 내에서이 종속성을 작성해야합니다.

+0

그래서 당신은 클래스 B가 클래스 A에 대한 포인터를 개최 할 수 있도록하려면? 나는 당신이 무엇을 얻고 있는지 완전히 확신하지 못하고 있지만, C/C++ 구조체에서 Java로 포인터를 전달한 다음 다시 포인터를 전달할 수 있습니다. –

+0

클래스 B가 사용되는 동안 클래스 A가 GC 화되지 않도록해야하며 JNI 내에서이 종속성을 만들어야합니다. –

+0

make_b (a)에 대한 호출이 전달 된 A 인스턴스에 대한 참조를 포함하는 B의 인스턴스를 반환하도록 자바 인터페이스에 추가 할 수 없습니까? –

답변