source: tags/0.12.0/j/doc/java.html

Last change on this file was 2434, checked in by piso, 21 years ago

Minor cleanup.

File size: 3.6 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
2<html>
3<head>
4<title>J User's Guide - Calling Java From Lisp</title>
5<LINK REL="stylesheet" HREF="j.css" TYPE="text/css">
6</head>
7<body>
8<a href="contents.html">Top</a>
9<hr>
10<h1>Calling Java From Lisp</h1>
11<hr>
12<p>
13Programs in j's built-in Lisp can use the following functions to instantiate
14Java classes and call Java methods:
15<p>
16<a name="jclass">&#8226; jclass</a><dl><dd>
17<p>
18jclass <i>class-name</i> =&gt; <i>class-ref</i>
19<p>
20Returns a reference to the specified Java class.
21        <pre>
22        (jclass "java.lang.String") =&gt;
23            #&lt;JAVAOBJECT ... class java.lang.String&gt;</pre>
24</dl>
25<a name="jconstructor">&#8226; jconstructor</a><dl><dd>
26<p>
27jconstructor <i>class-name &amp;rest parameter-class-names</i> =&gt; <i>constructor-ref</i>
28<p>
29Returns a reference to the specified constructor.
30        <pre>
31        (jconstructor "java.lang.StringBuffer") =&gt;
32            #&lt;JAVAOBJECT ... public java.lang.StringBuffer()&gt;
33
34        (jconstructor "java.lang.StringBuffer" "java.lang.String") =&gt;
35            #&lt;JAVAOBJECT ... public java.lang.StringBuffer(java.lang.String)&gt;</pre>
36        Java primitive types may be used as parameter class names:
37        <pre>
38        (jconstructor "java.lang.StringBuffer" "int") =&gt;
39            #&lt;JAVAOBJECT ... public java.lang.StringBuffer(int)&gt;</pre>
40</dl>
41<a name="jmethod">&#8226; jmethod</a><dl><dd>
42<p>
43jmethod <i>class-name method-name &amp;rest parameter-class-names</i> =&gt; <i>method-ref</i>
44<p>
45Returns a reference to the specified method.
46        <pre>
47        (jmethod "java.lang.String" "length") =&gt;
48            #&lt;JAVAOBJECT ... java.lang.String.length()&gt;
49
50        (jmethod "java.lang.StringBuffer" "append" "java.lang.String") =&gt;
51            #&lt;JAVAOBJECT ... java.lang.StringBuffer.append(java.lang.String)&gt;</pre>
52The parameter class names may be omitted if there is no ambiguity:
53        <pre>
54        (jmethod "java.lang.StringBuffer" "setLength") =&gt;
55           #&lt;JAVAOBJECT ... public synchronized void java.lang.StringBuffer.setLength(int)&gt;</pre>
56</dl>
57<a name="jstatic">&#8226; jstatic</a><dl><dd>
58<p>
59jstatic <i>method-ref class-ref &amp;rest args</i> =&gt; <i>result</i>
60<p>
61Invokes a static method.
62<p>
63If <i>method-ref</i> is a string, it is assumed to name a method. <i>class-ref</i>
64must be a class name or a class reference returned by <a href="#jclass">jclass</a>.
65        <pre>
66        (jstatic "currentTimeMillis" "java.lang.System") =&gt;
67            1043330903587</pre>
68<p>
69If <i>method-ref</i> is a method reference returned by <a href="#jmethod">jmethod</a>,
70the <i>class-ref</i> argument is ignored.
71        <pre>
72        (jstatic (jmethod "java.lang.System" "currentTimeMillis") nil) =&gt;
73            1043330944932</pre>
74</dl>
75<a name="jnew">&#8226; jnew</a><dl><dd>
76<p>
77jnew <i>constructor &amp;rest args</i> =&gt; <i>object-ref</i>
78<p>
79Invokes a constructor.
80<pre>
81        (jnew (jconstructor "java.lang.String" "java.lang.String") "this is a test") =&gt;
82            #&lt;JAVAOBJECT [java.lang.String] this is a test&gt;</pre>
83</dl>
84<a name="jcall">&#8226; jcall</a><dl><dd>
85<p>
86jcall <i>method-ref instance-ref &amp;rest args</i> =&gt; <i>result</i>
87<p>
88Invokes a method on a Java object.
89<pre>
90        (setq x (jnew (jconstructor "java.lang.String" "java.lang.String") "this is a test")) =&gt;
91            #&lt;JAVAOBJECT [java.lang.String] this is a test&gt;
92
93        (defconstant length-method (jmethod "java.lang.String" "length")) =&gt;
94            LENGTH-METHOD
95
96        (jcall length-method x) =&gt;
97            14</pre>
98</dl>
99</body>
100</html>
Note: See TracBrowser for help on using the repository browser.