public function &getValue(string $key, $defaultValue = null)
    {
        if ($this->isValidType($defaultValue) === false) {
            throw new MWrongTypeException("\$value", $this->getType(), $defaultValue);
        }

        if (isset($this->map[$key]) === false) {
            return $defaultValue;
        }

        return $this->map[$key];
    }