[armedbear-devel] SETF for JFEILDS

logicmoo at gmail.com logicmoo at gmail.com
Mon Nov 23 16:57:45 UTC 2009


Ok even Allegro uses T and NIL for the Booleans.. which is why

> CL-USER(17):  (jclass-of (jfield "java.lang.Boolean" "TRUE"))
> NIL
> NIL

was still correct.. I think the closer we stick with Allegro the better.



for future reference (to myself) to make a boolean one does:


CL-USER(21): (jnew  (jconstructor "java.lang.Boolean" "java.lang.String") "True")
#<java.lang.Boolean true {44AC5E}>
CL-USER(22): (jclass-of (jnew  (jconstructor "java.lang.Boolean" "java.lang.String") "True"))
"java.lang.Boolean"
"java.lang.Boolean"



If there is any action items out of all this:

  Perhaps:    javaInstance()    on Nil  returns Boolean.FALSE?

Then in Symbol.java

    Object javaInstance() {
         if (this == T) return Boolean.TRUE;
         return super.javaInstance();
    }




And in LispObject itself any thoughts on?

    LispObject.this.javaInstance(Class c) {
          if (c.isInstance(this)) return this;
       // widen and resubmit for subclasses
          if (c==int.class) return javaInstance(Integer.class);
          if (c==boolean.class) return javaInstance(Boolean.class);
       // they requested a boolean.. give it to them
          if (c==Boolean.class) return getBooleanValue();
       .....
          //hit the error logic
    }



----- Original Message ----- 
From: <dmiles at users.sourceforge.net>
To: "Armed Bear" <armedbear-devel at common-lisp.net>
Sent: Monday, November 23, 2009 7:42 AM
Subject: Re: [armedbear-devel] SETF for JFEILDS


> 
> These 3 look good
> 
> 
> CL-USER(2): (jclass-of (jfield "java.lang.System" "out"))
> "java.io.PrintStream"
> "java.io.PrintStream"
> 
> CL-USER(4): (jclass-of 1)
> NIL
> NIL
> 
> CL-USER(5): (jclass-of (make-immediate-object 1))
> "java.lang.Integer"
> "java.lang.Integer"
> 
> 
> 
> But is this correct?
> 
> 
> CL-USER(17):  (jclass-of (jfield "java.lang.Boolean" "TRUE"))
> NIL
> NIL
> CL-USER(18): (jclass-of (jfield "java.lang.Boolean" "FALSE"))
> NIL
> NIL
> 
> 
> 
>




More information about the armedbear-devel mailing list