DynamicPointerEx extends DynamicPointer { @Override public PropertyPointer getPropertyPointer() { return new DynamicPropertyPointerEx(this, handler); } DynamicPointerEx(QName name, Object bean,
            DynamicPropertyHandler handler, Locale locale);  DynamicPointerEx(NodePointer parent, QName name, Object bean,
            DynamicPropertyHandler handler); @Override PropertyPointer getPropertyPointer();  }
@Test public void testGetPropertyPointer01() throws Exception { QName qName = new QName("name"); Object bean = new Object(); DynamicPropertyHandler handler = new MapDynamicPropertyHandler(); Locale locale = new Locale("ja"); DynamicPointerEx pointer = new DynamicPointerEx(qName, bean, handler, locale); Object result = pointer.getPropertyPointer(); assertSame(DynamicPropertyPointerEx.class, result.getClass()); assertSame(pointer, ((DynamicPropertyPointerEx) result).getParent()); Field field = DynamicPropertyPointer.class.getDeclaredField("handler"); field.setAccessible(true); Object resultHandler = field.get(result); assertSame(handler, resultHandler); }