private static void removePropertyChangeListenerUnchecked(
        Object target, PropertyChangeListener propertyChangeListener)
    {
        Class<?> c = target.getClass();
        if (!maintainsPropertyChangeListeners(c))
        {
            throw new IllegalArgumentException(
                "Class "+c+" does not maintain " +
                "PropertyChangeListeners");
        }
        Method removeMethod = Methods.getMethodUnchecked(
            c, "removePropertyChangeListener", 
            PropertyChangeListener.class);
        Methods.invokeUnchecked(removeMethod, target, 
            propertyChangeListener);
    }
private static void removePropertyChangeListenerUnchecked ( Object target , PropertyChangeListener propertyChangeListener ) { Class < ? > c = target . getClass ( ) ; if ( ! maintainsPropertyChangeListeners ( c ) ) { throw new IllegalArgumentException ( "Class " + c + " does not maintain " + "PropertyChangeListeners" ) ; } Method removeMethod = Methods . getMethodUnchecked ( c , "removePropertyChangeListener" , PropertyChangeListener . class ) ; Methods . invokeUnchecked ( removeMethod , target , propertyChangeListener ) ; }
Remove the given PropertyChangeListener to the given target object.
If the given target object does not
{@link #maintainsPropertyChangeListeners(Class)
maintain PropertyChangeListeners}, or the invocation of the method to
remove such a listener caused an error, a
{@link IllegalArgumentException} will be thrown.

@param target The target object
@param propertyChangeListener The PropertyChangeListener to remove
@throws IllegalArgumentException If the given object does not maintain
PropertyChangeListeners, or the attempt to invoke the method
for removing the given listener failed.