### Question:
MapPath extends MapExpressionBase<K, V, E> implements Path<Map<K, V>> { @Override public E get(Expression<K> key) { try { PathMetadata md = forMapAccess(key); return newInstance(md); } catch (NoSuchMethodException e) { throw new ExpressionException(e); } catch (InstantiationException e) { throw new ExpressionException(e); } catch (IllegalAccessException e) { throw new ExpressionException(e); } catch (InvocationTargetException e) { throw new ExpressionException(e); } } protected  MapPath(Class<? super K> keyType, Class<? super V> valueType, Class<E> queryType, String variable); protected  MapPath(Class<? super K> keyType, Class<? super V> valueType, Class<E> queryType, Path<?> parent, String property); @SuppressWarnings("unchecked") protected  MapPath(Class<? super K> keyType, Class<? super V> valueType, Class<E> queryType, PathMetadata metadata); @Override final R accept(Visitor<R,C> v, C context); @Override E get(Expression<K> key); @Override E get(K key); Class<K> getKeyType(); @Override PathMetadata getMetadata(); @Override Path<?> getRoot(); Class<V> getValueType(); @Override AnnotatedElement getAnnotatedElement(); @Override Class<?> getParameter(int index);  }### Answer:
@Test public void get() { assertNotNull(mapPath.get("X")); assertNotNull(mapPath.get(ConstantImpl.create("X"))); }