‘ProxyFactory.isProxyClass’ method return true if the given class is proxy class else false.
Example
GreetUser greetUser1 = ….;
boolean isProxyClass = ProxyFactory.isProxyClass(greetUser1.getClass());
if (isProxyClass) {
System.out.println("Given class is proxy class");
} else {
System.out.println("Given class is not proxy class");
}
Find the below working application.
GreetUser.java
package com.sample.app;
public class GreetUser {
public void goodMorning() {
System.out.println("Hello User, Good Morning!!!!");
}
}
App.java
package com.sample.app;
import java.lang.reflect.Method;
import javassist.util.proxy.MethodHandler;
import javassist.util.proxy.ProxyFactory;
import javassist.util.proxy.ProxyObject;
public class App {
public static <T> T createProxy(Class<T> originalClass) throws Exception {
ProxyFactory factory = new ProxyFactory();
factory.setSuperclass(originalClass);
Class proxyClass = factory.createClass();
MethodHandler handler = new MethodHandler() {
@Override
public Object invoke(Object self, Method overridden, Method forwarder, Object[] args) throws Throwable {
System.out.println("Intercepting the method : " + overridden.getName());
try {
return forwarder.invoke(self, args);
} finally {
System.out.println("Method '" + overridden.getName() + "' execution is finished");
}
}
};
Object proxyInstance = proxyClass.newInstance();
((ProxyObject) proxyInstance).setHandler(handler);
return (T) proxyInstance;
}
public static void main(String args[]) throws Exception {
GreetUser greetUser1 = createProxy(GreetUser.class);
boolean isProxyClass = ProxyFactory.isProxyClass(greetUser1.getClass());
if (isProxyClass) {
System.out.println("Given class is proxy class");
} else {
System.out.println("Given class is not proxy class");
}
GreetUser greetUser2 = new GreetUser();
isProxyClass = ProxyFactory.isProxyClass(greetUser2.getClass());
if (isProxyClass) {
System.out.println("Given class is proxy class");
} else {
System.out.println("Given class is not proxy class");
}
}
}
Run App.java, you will get below messages in console.
Given class is proxy class
Given class is not proxy class
No comments:
Post a Comment