Recent Notes

Displaying keyword search results 1 - 10
Created by Fang on May 03, 2012 15:07:17    Last update: May 03, 2012 15:07:52
Scaling an image with default Java API loses quality (horribly!): public static BufferedImage resizeImage(Buffer... The imgscalr library does the job beautifully. And its' very easy to do: // import org.imgscalr.Scalr; public static... To import the library in Maven: <dependency> <groupId>org.imgscalr</groupId> ...
Created by magnum on July 26, 2010 15:55:41    Last update: March 28, 2012 15:28:02
Given the URL: http://www.mydomain.com/myWebApp/theServlet/p1/p2/p3;sid=123?param=abc This would be the output of the various method calls on HttpServletRequest : String scheme = request.getScheme(); // ...
Created by alfa on June 07, 2011 11:34:26    Last update: June 07, 2011 11:36:37
This is an example that uses dynamic proxies to trace method calls (in logging) and print out elapsed times for them. Because dynamic proxies can only be generated for interfaces, the service classes must be implemented with interface-implementation pairs. Create services A and B. A.java : public interface A { public void service1()... AImpl.java : import java.util.Random; public class AImpl... B.java : public interface B { public void service1()... BImpl.java : public class BImpl implements B { public vo... The call trace proxy: import java.lang.reflect.*; class TraceProx... The performance proxy: import java.lang.reflect.*; class Performan... The service factory: import java.lang.reflect.*; public class Se... The test class: public class Test { public static void main... The output: Entering AImpl.service1 Entering BImpl.service1... The above example has no information...
Created by alfa on June 03, 2011 09:41:03    Last update: June 03, 2011 09:41:03
Dynamic proxy can be used to eliminate the need to stub out unused interface methods. This is an example for a simple SAX content handler for XML parsing. The org.xml.sax.ContentHandler interface requires 11 methods be implemented but we only need three: import java.io.IOException; import java.util.Ar... With a dynamic proxy, we don't need the empty blocks for the unused methods: import java.io.IOException; import java.util.Ar... Equivalently (with anonymous inner class): import java.io.IOException; import java.util.Ar... demo.xml : <breakfast-menu> <food> <name>Belgian W...
Created by alfa on June 02, 2011 15:49:26    Last update: June 02, 2011 15:51:08
Facts: Dynamic proxy classes are generated by the Java runtime, from a list of interfaces given by the user. The generated proxy class implements all interfaces given by the user. The dynamic proxy class is not synthetic . The dynamic proxy class is useless without a user supplied InvocationHandler class, since there's only one constructor for the proxy class and it takes a InvocationHandler as parameter. Example code: import java.lang.reflect.Constructor; import ja... Output: Class: $Proxy0 isSynthetic: false Constructo...
Created by alfa on June 02, 2011 15:26:37    Last update: June 02, 2011 15:26:37
While doing some Java reflection code, I noticed the method Class.isSynthetic() , which the JavaDoc says returns " true if and only if this class is a synthetic class as defined by the Java Language Specification". However, there's no definition of "synthetic class" in the JLS ! The only thing that I can find that remotely resembles a definition is in the JVM spec , where it defines the synthetic attribute : "The Synthetic attribute is a fixed-length attribute in the attributes table of ClassFile (§4.1), field_info (§4.5), and method_info (§4.6) structures. A class member that does not appear in the source code must be marked using a Synthetic attribute." By this definition, a default constructor, which does not appear in the source code, should...
Created by alfa on May 26, 2011 21:16:22    Last update: June 02, 2011 14:39:57
Given a class A : class A { public int doWork(String s, int i... it is OK to call method doWork with both primitive types and the corresponding wrapping object types: new A().doWork("Hello", 1, false); new A().doWo... However, if you find method by parameter types with Java reflection, the types must match exactly, i.e., Class<?> c = Class.forName("A"); // This call f... This is a utility to find methods with compatible parameter types: import java.lang.reflect.*; import java.util.*;... Example usage: Method m = ReflectionUtil.getCompatibleMethod(c, "...
Created by alfa on May 27, 2011 11:19:29    Last update: May 31, 2011 07:56:26
This is a utility to convert a string value to one of the primitive type values. It is useful in Java reflection code where the value comes in as a string (e.g., from XML parsing), and the type of the value cannot be decided until runtime. import java.util.*; import java.lang.reflect.*;... Note: This method can be extended to convert string to more complex types by writing a converter for the destination type. For example, to convert string to date: public class DateConverter { public static ... Usage: Date d = (Date) ConvertUtil.convert("10/12/2010", ...
Created by alfa on May 24, 2011 14:52:53    Last update: May 26, 2011 19:52:12
import java.lang.reflect.Method; public cla...
Created by alfa on May 24, 2011 15:59:41    Last update: May 24, 2011 15:59:41
Java reflection with Apache beanutils example. import org.apache.commons.beanutils.MethodUtils; ...
Previous  1 2 Next