|
[Date Index]
[Thread Index]
[Author Index]
Re: Accessing static members with J/Link
- To: mathgroup at smc.vnet.net
- Subject: [mg110985] Re: Accessing static members with J/Link
- From: David Bailey <dave at removedbailey.co.uk>
- Date: Fri, 16 Jul 2010 05:15:35 -0400 (EDT)
- References: <i1mc8o$8v5$1@smc.vnet.net>
On 15/07/10 08:10, John_V wrote:
> I'm trying to learn how to use J/Link, and I have run into an elementary
> (I hope) problem when I try to access static methods and fields. For
> example, the Java Math class has static fields for E and PI and a number
> of static methods, abs() among them. Here's what happens when I try to
> use them:
>
> My inputs:
>
> Needs["JLink`"]
> InstallJava[]
> myMathClass = LoadJavaClass["java.lang.Math"]
> Fields[myMathClass]
> pi = myMathClass`PI
> myMathClass`abs[-5]
>
> /Mathematica/'s outputs:
>
> Out[2]= LinkObject[...]
>
> Out[3]= JavaClass[java.lang.Math,<> ]
>
> Out[4]//TableForm=
> static final double E
> static final double PI
>
> Out[5]= myMathClass`PI
>
> Out[6]= myMathClass`abs[-5]
>
> I believe the fact that Out[4] correctly lists java.lang.Math's static
> fields means LoadJavaClass worked, but I expected Out[5] = 3.1415... and
> Out[6] = 5. I thought this was a near verbatim transcription of the
> examples in the "Calling Methods and Accessing Fields" part of the
> J/Link user guide. What am I doing wrong?
>
> Thanks,
>
> John
>
After loading the relevant class, you should be able to access static
members by using the full Java name with context marks instead of the
periods:
In[8]:= java`lang`Math`PI
Out[8]= 3.14159
Note that although these appear like simple Mathematica variables, they
have been setup with SetDelayed, so that evaluateing one accesses the
corresponding variable in Java - to see this, type:
?java`lang`Math`PI
David Bailey
http://www.dbaileyconsultancy.co.uk
Prev by Date:
Re: Accessing static members with J/Link
Next by Date:
Re: Primitive Disk Gradient Fills in Graphics
Previous by thread:
Re: Accessing static members with J/Link
Next by thread:
Generate #s
|