net.sf.cglib.core
public abstract class KeyFactory extends Object
equals and hashCode methods follow the
the rules laid out in Effective Java by Joshua Bloch.
To generate a KeyFactory, you need to supply an interface which
describes the structure of the key. The interface should have a
single method named newInstance, which returns an
Object. The arguments array can be
anything--Objects, primitive values, or single or
multi-dimension arrays of either. For example:
private interface IntStringKey {
public Object newInstance(int i, String s);
}
Once you have made a KeyFactory, you generate a new key by calling
the newInstance method defined by your interface.
IntStringKey factory = (IntStringKey)KeyFactory.create(IntStringKey.class);
Object key1 = factory.newInstance(4, "Hello");
Object key2 = factory.newInstance(4, "World");
Note:
hashCode equality between two keys key1 and key2 is only guaranteed if
key1.equals(key2) and the keys were produced by the same factory.
Version: $Id: KeyFactory.java,v 1.24 2004/09/18 21:22:22 herbyderby Exp $
| Nested Class Summary | |
|---|---|
| static class | KeyFactory.Generator |
| Field Summary | |
|---|---|
| static Customizer | CLASS_BY_NAME |
| static Customizer | OBJECT_BY_CLASS |
| Method Summary | |
|---|---|
| static KeyFactory | create(Class keyInterface) |
| static KeyFactory | create(Class keyInterface, Customizer customizer) |
| static KeyFactory | create(ClassLoader loader, Class keyInterface, Customizer customizer) |