cglib/src/main/java/net/sf/cglib/proxy/Enhancer.java
public void setCallbackTypes(Class[] callbackTypes) {
        if (callbackTypes != null && callbackTypes.length == 0) {
            throw new IllegalArgumentException("Array cannot be empty");
        }
        this.callbackTypes = CallbackInfo.determineTypes(callbackTypes);
    }
public void setCallbackTypes(Class[] callbackTypes) {
        if (callbackTypes != null && callbackTypes.length == 0) {
            throw new IllegalArgumentException("Array cannot be empty");
        }
        this.callbackTypes = CallbackInfo.determineTypes(callbackTypes);
    }
Set the array of callback types to use.
This may be used instead of {@link #setCallbacks} when calling
{@link #createClass}, since it may not be possible to have
an array of actual callback instances.
You must use a {@link CallbackFilter} to specify the index into this
array for each method in the proxied class.
@param callbackTypes the array of callback types