2
JNI를 사용하여 일부 C 코드에 대한 Java 래퍼를 생성합니다.JNI 포인터 의존성을위한 디자인 패턴
a = make_a();
b = make_b(a);
을 나는 다양한 작업과 함께 make_a()
및 make_b
의 출력에 대한 참조를 개최 class A
및 class B
를 사용하는 자바 측면에서이처럼 보이는 C 측에 대한 종속성이 있습니다. 또한 class B
은 class A
이 붙어 있습니다.
JNI 내에서 두 클래스 간의 종속성을 어떻게 만들 수 있습니까?
업데이트
I 클래스 B를 사용하는 동안 GC'd 수 없습니다에 클래스 A를해야하고, 나는 JNI 내에서이 종속성을 작성해야합니다.
그래서 당신은 클래스 B가 클래스 A에 대한 포인터를 개최 할 수 있도록하려면? 나는 당신이 무엇을 얻고 있는지 완전히 확신하지 못하고 있지만, C/C++ 구조체에서 Java로 포인터를 전달한 다음 다시 포인터를 전달할 수 있습니다. –
클래스 B가 사용되는 동안 클래스 A가 GC 화되지 않도록해야하며 JNI 내에서이 종속성을 만들어야합니다. –
make_b (a)에 대한 호출이 전달 된 A 인스턴스에 대한 참조를 포함하는 B의 인스턴스를 반환하도록 자바 인터페이스에 추가 할 수 없습니까? –