public Double getDoubleOrNull(String key) throws IllegalStateException {
		Type type = stateMap.get(key);
		if (type == null) {
			return null;
		}
		switch (type) {
			case NULL:
				return null;
			case DOUBLE:
				Object obj = get(key);
				if (obj instanceof Double) {
					return (Double) obj;
				} else if (obj instanceof Float) {
					return (double) (Float) obj;
				} else {
					throw new IllegalStateException("unexpected class. class="
							+ obj.getClass().getCanonicalName());
				}
			default:
				throw new IllegalStateException("unexpected token. token=" + type);
		}
	}
public Double getDoubleOrNull ( String key ) throws IllegalStateException { Type type = stateMap . get ( key ) ; if ( type == null ) { return null ; } switch ( type ) { case NULL : return null ; case DOUBLE : Object obj = get ( key ) ; if ( obj instanceof Double ) { return ( Double ) obj ; } else if ( obj instanceof Float ) { return ( double ) ( Float ) obj ; } else { throw new IllegalStateException ( "unexpected class. class=" + obj . getClass ( ) . getCanonicalName ( ) ) ; } default : throw new IllegalStateException ( "unexpected token. token=" + type ) ; } }
Retrieves the corresponding value of the given key as double-precision floating point number.<br>
If it is neither {@code null} nor a {@link Double}, {@link IllegalStateException} will be thrown.
@param key
@return The value
@throws IllegalStateException The given index points neither {@code null} nor a {@link Double}.
@author vvakame