[Kde-java] QAccel problem
Richard Dale
kde-java@kde.org
Wed, 13 Feb 2002 11:26:31 +0000
On Wednesday 13 February 2002 1:20 am, Emond Papegaaij wrote:
> On Monday 11 February 2002 12:15, Richard Dale wrote:
> > On Saturday 09 February 2002 2:39 pm, Emond Papegaaij wrote:
> > > I noticed one more thing: Why does QWMatrix.invert() take an array of
> > > int as argument? The QT version takes a bool.
> >
> > That was a bug in the code generation, a 'bool *' argument type is now
> > converted correctly to a 'boolean[]'. I've fixed the QWMatrix class in
> > the cvs.
>
> Why not use Boolean? You can pass a Boolean object by reference. Yes, but
Booleans are immutable - there are no set methods to change their values. The
program below produces the following output, only the value in the boolean[]
type gets changed:
tipitina duke 1147% java BooleanTest
myarg1: true
myarg1: true
myarg2: true
myarg2: false
myarg3: true
myarg3: true
-- Richard
public class BooleanTest {
public static void f1(boolean arg) {
arg = false;
}
public static void f2(boolean[] arg) {
arg[0] = false;
}
public static void f3(Boolean arg) {
// arg can't be changed, only replaced with a local reference
arg = Boolean.FALSE;
}
public static void main(String[] args) {
boolean myarg1 = true;
System.out.println("myarg1: " + (myarg1 ? "true" : "false"));
f1(myarg1);
System.out.println("myarg1: " + (myarg1 ? "true" : "false"));
boolean[] myarg2 = { true };
myarg2[0] = true;
System.out.println("myarg2: " + (myarg2[0] ? "true" : "false"));
f2(myarg2);
System.out.println("myarg2: " + (myarg2[0] ? "true" : "false"));
Boolean myarg3 = new Boolean(true);
System.out.println("myarg3: " + myarg3);
f3(myarg3);
System.out.println("myarg3: " + myarg3);
return;
}
}