Question:
Why am I getting a type conversion error with the following method:
public synchronized void setVisible(Boolean b) { setLocation(50, 50); super.setVisible(b);}
Answer:
You do not mention what setVisible method you are overriding, but I will assume it’s the one in java.awt.Component. That method requires an argument of the primitive boolean type, rather than the Boolean object type defined in the java.lang package. If you’re not used to a language with a primitive boolean type, it is easy to forget that it is primitive, and instead assume it is a class, and use a conventionally capitalized class name instead. Java provides a set of wrapperclasses for primitve types because Java primitive types do not derive from java.lang.Object. Often it is necessary to return a value or pass an argument value as an Object, rather than a primitive type. The Boolean class provides this wrapping ability for boolean types. Remember, when your compiler spits out a class casting error, carefully check the types of all ofyour variables. When passing arguments, double check the parameter types against the method signature.
Charlie has over a decade of experience in website administration and technology management. As the site admin, he oversees all technical aspects of running a high-traffic online platform, ensuring optimal performance, security, and user experience.























