void () { final MyElement[] element = new MyElement[]{createElement("")}; final MyElement stable = getDomManager().createStableValue(() -> element[0]); MyElement oldElement = element[0]; //noinspection CastToIncompatibleInterface ((StableElement<?>) stable).revalidate(); assertSame(oldElement, ((StableElement<?>) stable).getWrappedElement()); element[0] = createElement(""); assertTrue(oldElement.isValid()); ((StableElement<?>) stable).revalidate(); assertTrue(oldElement.isValid()); assertNotSame(oldElement, ((StableElement<?>) stable).getWrappedElement()); assertSame(element[0], ((StableElement<?>) stable).getWrappedElement()); }