import-java-class-definitions java-class-name &key lisp-class-p lisp-name export-p package-name name-constructor lisp-supers => lisp-name-symbol
A string.
A generalized boolean.
A symbol.
A generalized boolean.
A package designator.
A function designator.
A list of symbols.
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 all the keywords are passed to it. See the entry 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 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.
generate-java-class-definitions
write-java-class-definitions-to-file
write-java-class-definitions-to-stream
Importing classes
LispWorks User Guide and Reference Manual - 20 Sep 2017