Accessing static members with J/Link
- To: mathgroup at smc.vnet.net
- Subject: [mg110973] Accessing static members with J/Link
- From: John_V <jvillar.john at gmail.com>
- Date: Thu, 15 Jul 2010 03:09:53 -0400 (EDT)
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