Recent Notes
Displaying keyword search results 81 - 90
Created by alfa on June 03, 2011 12:07:52
Last update: June 03, 2011 12:07:52
import java.util.Random;
public class Rando...
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 03, 2011 09:08:52
Last update: June 03, 2011 09:08:52
import java.util.Arrays;
public class Array...
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 June 02, 2011 13:51:41
Last update: June 02, 2011 13:51:41
This may be helpful in debugging reflection code.
import java.lang.reflect.Modifier;
public c...
Created by alfa on June 02, 2011 13:04:18
Last update: June 02, 2011 13:04:18
Some javap usage examples.
Start from HelloWorld.java :
@Deprecated
public class HelloWorld {
pu...
javap -c HelloWorld outputs:
Compiled from "HelloWorld.java"
public class He...
javap -v HelloWorld outputs ( -v for verbose mode):
Compiled from "HelloWorld.java"
public class He...
The output consists of:
" Compiled from... " header
Class attributes. For the HelloWorld example, there are two: SourceFile and Deprecated .
Minor and major class file version
Constant pool
Disassembled code
LineNumberTable for debugging purposes.
javap by default only prints package/protected/public members. To display all members including private, use the -p switch.
javap -v -p HelloWorld
Created by alfa on June 01, 2011 13:08:36
Last update: June 01, 2011 13:08:36
Code:
public class SplitTest {
public static void...
Output:
Split 1:
'a'
' b '
' c '
'd '
S...
Created by freyo on May 31, 2011 14:45:29
Last update: May 31, 2011 14:47:35
Create BroadcastReceiver class (implement onReceive ):
import android.content.*;
import android.net.Ur...
Declare receiver with intent filter in AndroidManifest.xml :
<receiver android:name="PackageChangeReceiver">
...
In order to receive the broadcasts, the data element is required in addition to the action elements in the intent filter.
When a package is being replaced, the Android system actually broadcasts three intents (in this order):
ACTION_PACKAGE_REMOVED
ACTION_PACKAGE_ADDED
ACTION_PACKAGE_REPLACED
To tell that that an ACTION_PACKAGE_REMOVED or ACTION_PACKAGE_ADDED intent is received as the result of a package being replaced (instead of plain add or remove), check the EXTRA_REPLACING flag:
boolean replacing = intent.getBooleanExtra(Intent....