Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #19000

Re: JNI return jobjectArray

From markspace <-@.>
Newsgroups comp.lang.java.programmer
Subject Re: JNI return jobjectArray
Date 2012-09-30 14:56 -0700
Organization A noiseless patient Spider
Message-ID <k4af7c$tdo$1@dont-email.me> (permalink)
References <k4a9gd$usp$1@online.de>

Show all headers | View raw


On 9/30/2012 1:23 PM, Philipp Kraus wrote:
> Hello,
>
> I hope this question is not OT.
>
> I create a JNI call for this Java method
>
> class myclass {
>
>     void native mymethod( Double[] x )
> }
>
> so the parameter x should be a call-by-reference, I would set x in the
> native JNI function:
>
> void mymethod( JNIEnv *jenv, jclass jcls, jobjectArray& jarg )
> {
>    // do something
>    jobjectArray t = .....
>
>    jarg = t;
> }
>
> How can I set the jobjectArray& back, so the data is return in the
> parameter x?


You can't.  Java doesn't have a pass-by-reference call scheme, at all. 
Java uses only pass by value.  You could:

1. Return the new array as a return value.
2. Create a reference to a reference so you can replace the 2nd one:

 > class myclass {
 >
 >     void native mymethod( Double[][] x )
 > }

will give you a pointer to an array which you can then modify.

A Google search for "Java pass by reference" will give you lots of 
details.  Maybe add "jni" to get some clues more specific results for 
your particular situation.

<https://www.google.com/search?q=java+pass+by+reference>

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

JNI return jobjectArray Philipp Kraus <philipp.kraus@flashpixx.de> - 2012-09-30 22:23 +0200
  Re: JNI return jobjectArray markspace <-@.> - 2012-09-30 14:56 -0700
    Re: JNI return jobjectArray Philipp Kraus <philipp.kraus@flashpixx.de> - 2012-10-01 00:23 +0200
      Re: JNI return jobjectArray markspace <-@.> - 2012-09-30 19:21 -0700
        Re: JNI return jobjectArray Lew <lewbloch@gmail.com> - 2012-09-30 21:14 -0700
          Re: JNI return jobjectArray markspace <-@.> - 2012-10-01 08:32 -0700
      Re: JNI return jobjectArray "Chris Uppal" <chris.uppal@metagnostic.REMOVE-THIS.org> - 2012-10-01 09:39 +0100
  Re: JNI return jobjectArray Roedy Green <see_website@mindprod.com.invalid> - 2012-10-01 10:21 -0700
  Re: JNI return jobjectArray Steven Simpson <ss@domain.invalid> - 2012-10-01 23:46 +0100

csiph-web