convertutilsbean.java
来自「JAVA 文章管理系统源码」· Java 代码 · 共 582 行 · 第 1/2 页
JAVA
582 行
*/
private Integer defaultInteger = new Integer(0);
/**
* Gets the default value for Integer conversions.
* @deprecated Register replacement converters for Integer.TYPE and
* Integer.class instead
*/
public int getDefaultInteger() {
return (defaultInteger.intValue());
}
/**
* Sets the default value for Integer conversions.
* @deprecated Register replacement converters for Integer.TYPE and
* Integer.class instead
*/
public void setDefaultInteger(int newDefaultInteger) {
defaultInteger = new Integer(newDefaultInteger);
register(new IntegerConverter(defaultInteger), Integer.TYPE);
register(new IntegerConverter(defaultInteger), Integer.class);
}
/**
* The default value for Long conversions.
* @deprecated Register replacement converters for Long.TYPE and
* Long.class instead
*/
private Long defaultLong = new Long((long) 0);
/**
* Gets the default value for Long conversions.
* @deprecated Register replacement converters for Long.TYPE and
* Long.class instead
*/
public long getDefaultLong() {
return (defaultLong.longValue());
}
/**
* Sets the default value for Long conversions.
* @deprecated Register replacement converters for Long.TYPE and
* Long.class instead
*/
public void setDefaultLong(long newDefaultLong) {
defaultLong = new Long(newDefaultLong);
register(new LongConverter(defaultLong), Long.TYPE);
register(new LongConverter(defaultLong), Long.class);
}
/**
* The default value for Short conversions.
* @deprecated Register replacement converters for Short.TYPE and
* Short.class instead
*/
private static Short defaultShort = new Short((short) 0);
/**
* Gets the default value for Short conversions.
* @deprecated Register replacement converters for Short.TYPE and
* Short.class instead
*/
public short getDefaultShort() {
return (defaultShort.shortValue());
}
/**
* Sets the default value for Short conversions.
* @deprecated Register replacement converters for Short.TYPE and
* Short.class instead
*/
public void setDefaultShort(short newDefaultShort) {
defaultShort = new Short(newDefaultShort);
register(new ShortConverter(defaultShort), Short.TYPE);
register(new ShortConverter(defaultShort), Short.class);
}
/**
* Convert the specified value into a String. If the specified value
* is an array, the first element (converted to a String) will be
* returned. The registered {@link Converter} for the
* <code>java.lang.String</code> class will be used, which allows
* applications to customize Object->String conversions (the default
* implementation simply uses toString()).
*
* @param value Value to be converted (may be null)
*/
public String convert(Object value) {
if (value == null) {
return ((String) null);
} else if (value.getClass().isArray()) {
if (Array.getLength(value) < 1) {
return (null);
}
value = Array.get(value, 0);
if (value == null) {
return ((String) null);
} else {
Converter converter = lookup(String.class);
return ((String) converter.convert(String.class, value));
}
} else {
Converter converter = lookup(String.class);
return ((String) converter.convert(String.class, value));
}
}
/**
* Convert the specified value to an object of the specified class (if
* possible). Otherwise, return a String representation of the value.
*
* @param value Value to be converted (may be null)
* @param clazz Java class to be converted to
*
* @exception ConversionException if thrown by an underlying Converter
*/
public Object convert(String value, Class clazz) {
if (log.isDebugEnabled()) {
log.debug("Convert string '" + value + "' to class '" +
clazz.getName() + "'");
}
Converter converter = lookup(clazz);
if (converter == null) {
converter = lookup(String.class);
}
if (log.isTraceEnabled()) {
log.trace(" Using converter " + converter);
}
return (converter.convert(clazz, value));
}
/**
* Convert an array of specified values to an array of objects of the
* specified class (if possible). If the specified Java class is itself
* an array class, this class will be the type of the returned value.
* Otherwise, an array will be constructed whose component type is the
* specified class.
*
* @param values Values to be converted (may be null)
* @param clazz Java array or element class to be converted to
*
* @exception ConversionException if thrown by an underlying Converter
*/
public Object convert(String values[], Class clazz) {
Class type = clazz;
if (clazz.isArray()) {
type = clazz.getComponentType();
}
if (log.isDebugEnabled()) {
log.debug("Convert String[" + values.length + "] to class '" +
type.getName() + "[]'");
}
Converter converter = lookup(type);
if (converter == null) {
converter = lookup(String.class);
}
if (log.isTraceEnabled()) {
log.trace(" Using converter " + converter);
}
Object array = Array.newInstance(type, values.length);
for (int i = 0; i < values.length; i++) {
Array.set(array, i, converter.convert(type, values[i]));
}
return (array);
}
/**
* Remove all registered {@link Converter}s, and re-establish the
* standard Converters.
*/
public void deregister() {
boolean booleanArray[] = new boolean[0];
byte byteArray[] = new byte[0];
char charArray[] = new char[0];
double doubleArray[] = new double[0];
float floatArray[] = new float[0];
int intArray[] = new int[0];
long longArray[] = new long[0];
short shortArray[] = new short[0];
String stringArray[] = new String[0];
converters.clear();
register(BigDecimal.class, new BigDecimalConverter());
register(BigInteger.class, new BigIntegerConverter());
register(Boolean.TYPE, new BooleanConverter(defaultBoolean));
register(Boolean.class, new BooleanConverter(defaultBoolean));
register(booleanArray.getClass(),
new BooleanArrayConverter(booleanArray));
register(Byte.TYPE, new ByteConverter(defaultByte));
register(Byte.class, new ByteConverter(defaultByte));
register(byteArray.getClass(),
new ByteArrayConverter(byteArray));
register(Character.TYPE,
new CharacterConverter(defaultCharacter));
register(Character.class,
new CharacterConverter(defaultCharacter));
register(charArray.getClass(),
new CharacterArrayConverter(charArray));
register(Class.class, new ClassConverter());
register(Double.TYPE, new DoubleConverter(defaultDouble));
register(Double.class, new DoubleConverter(defaultDouble));
register(doubleArray.getClass(),
new DoubleArrayConverter(doubleArray));
register(Float.TYPE, new FloatConverter(defaultFloat));
register(Float.class, new FloatConverter(defaultFloat));
register(floatArray.getClass(),
new FloatArrayConverter(floatArray));
register(Integer.TYPE, new IntegerConverter(defaultInteger));
register(Integer.class, new IntegerConverter(defaultInteger));
register(intArray.getClass(),
new IntegerArrayConverter(intArray));
register(Long.TYPE, new LongConverter(defaultLong));
register(Long.class, new LongConverter(defaultLong));
register(longArray.getClass(),
new LongArrayConverter(longArray));
register(Short.TYPE, new ShortConverter(defaultShort));
register(Short.class, new ShortConverter(defaultShort));
register(shortArray.getClass(),
new ShortArrayConverter(shortArray));
register(String.class, new StringConverter());
register(stringArray.getClass(),
new StringArrayConverter(stringArray));
register(Date.class, new SqlDateConverter());
register(Time.class, new SqlTimeConverter());
register(Timestamp.class, new SqlTimestampConverter());
register(File.class, new FileConverter());
register(URL.class, new URLConverter());
}
/** strictly for convenience since it has same parameter order as Map.put */
private void register(Class clazz, Converter converter) {
register(converter, clazz);
}
/**
* Remove any registered {@link Converter} for the specified destination
* <code>Class</code>.
*
* @param clazz Class for which to remove a registered Converter
*/
public void deregister(Class clazz) {
converters.remove(clazz);
}
/**
* Look up and return any registered {@link Converter} for the specified
* destination class; if there is no registered Converter, return
* <code>null</code>.
*
* @param clazz Class for which to return a registered Converter
*/
public Converter lookup(Class clazz) {
return ((Converter) converters.get(clazz));
}
/**
* Register a custom {@link Converter} for the specified destination
* <code>Class</code>, replacing any previously registered Converter.
*
* @param converter Converter to be registered
* @param clazz Destination class for conversions performed by this
* Converter
*/
public void register(Converter converter, Class clazz) {
converters.put(clazz, converter);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?