Cách 'chính xác' để lưu trữ một con trỏ tự nhiên bên trong một đối tượng Java là gì?Cách 'chính xác' để lưu trữ một con trỏ tự nhiên bên trong một đối tượng Java là gì?
tôi có thể đối xử với con trỏ như một Java int
, nếu tôi xảy ra cho biết rằng con trỏ bản địa là < = 32 bit về kích thước, hoặc Java long
nếu tôi xảy ra cho biết rằng con trỏ bản địa là < = 64 bit trong kích thước. Nhưng liệu có cách nào tốt hơn hay sạch hơn để làm điều này?
Chỉnh sửa: Trả về con trỏ gốc từ hàm JNI chính xác là những gì tôi không muốn làm. Tôi thà trả về một đối tượng Java đại diện cho tài nguyên gốc. Tuy nhiên, đối tượng Java mà tôi trả về có lẽ có một trường có chứa một con trỏ, điều này đưa tôi trở lại câu hỏi ban đầu.
Hoặc, cách khác, có cách nào tốt hơn cho hàm JNI để trả lại tham chiếu đến tài nguyên gốc không?
Liên quan chặt chẽ đến câu hỏi http://stackoverflow.com/questions/1632367/passing-pointers-between-c-and-java-through-jni – Raedwald