### Question:
ArrayPath extends SimpleExpression<A> implements Path<A>, ArrayExpression<A, E> { @Override public SimplePath<E> get(Expression<Integer> index) { PathMetadata md = PathMetadataFactory.forArrayAccess(pathMixin, index); return Expressions.path(componentType, md); } protected  ArrayPath(Class<? super A> type, String variable); protected  ArrayPath(Class<? super A> type, Path<?> parent, String property); @SuppressWarnings("unchecked") protected  ArrayPath(Class<? super A> type, PathMetadata metadata); @Override final R accept(Visitor<R,C> v, C context); @Override SimplePath<E> get(Expression<Integer> index); @Override SimplePath<E> get(@Nonnegative int index); Class<E> getElementType(); @Override PathMetadata getMetadata(); @Override Path<?> getRoot(); @Override AnnotatedElement getAnnotatedElement(); @Override NumberExpression<Integer> size();  }### Answer:
@Test public void get() { ArrayPath<String[], String> arrayPath = new ArrayPath<String[], String>(String[].class, "p"); assertNotNull(arrayPath.get(ConstantImpl.create(0))); }