Generates all the definitions for a Java class.
lw-ji
import-java-class-definitions java-class-name &key lisp-class-p lisp-name export-p package-name name-constructor lisp-supers => lisp-name-symbol
java-class-name⇩ |
A string. |
lisp-class-p⇩ |
A generalized boolean. |
lisp-name⇩ |
A symbol. |
export-p⇩ |
A generalized boolean. |
package-name⇩ |
A package designator. |
name-constructor⇩ |
A function designator. |
lisp-supers⇩ |
A list of symbols. |
lisp-name-symbol⇩ |
A symbol. |
The macro import-java-class-definitions
generates all the definitions for the class java-class-name, and wraps cl:progn around them, and returns this from the macroexpansion. Therefore evaluation of an import-java-class-definitions
form defines all the callers for java-class-name.
java-class-name name must name a Java Class, and it must be the precise full name.
The generation of the definitions is done by generate-java-class-definitions, and the keyword arguments lisp-class-p, lisp-name, export-p, package-name, name-constructor and lisp-supers are all are passed to it. See the documentation for generate-java-class-definitions for the effects of the keywords.
During macroexpansion, import-java-class-definitions
needs to be able to find the class definitions, for which it needs running Java, which means a Java Virtual Machine running and the class being accessible. The evaluation of the definitions does not require Java. Thus if you compile a file containing an import-java-class-definitions
form, the binary file can be loaded without Java, but the compilation needs running Java, and loading the source file also requires running Java.
The returned value lisp-name-symbol is the Lisp name (which is lisp-name, or is generated by generate-java-class-definitions if lisp-name was not supplied).
See 15.2.1 Importing classes for discussion.
import-java-class-definitions
, it is probably useful to look at the output of the writers to have a better idea what is actually being generated.
(import-java-class-definitions "java.io.File")
generate-java-class-definitions
write-java-class-definitions-to-file
write-java-class-definitions-to-stream
15.2.1 Importing classes
LispWorks® User Guide and Reference Manual - 01 Dec 2021 19:30:46