package com.xiaoleilu.hutool.getter;
import java.math.BigDecimal;
import java.math.BigInteger;
/**
* 基本类型的getter接口抽象实现<br>
* 提供一个统一的接口定义返回不同类型的值(基本类型)<br>
* 在不提供默认值的情况下, 如果值不存在或获取错误,返回null<br>
* 用户只需实现{@code com.xiaoleilu.hutool.getter.OptBasicTypeGetter}接口即可
* @author Looly
*/
public abstract class OptNullBasicTypeGetter<K> implements BasicTypeGetter<K>, OptBasicTypeGetter<K>{
@Override
public Object getObj(K key) {
return getObj(key, null);
}
/**
* 获取字符串型属性值<br>
* 无值或获取错误返回null
*
* @param key 属性名
* @return 属性值
*/
@Override
public String getStr(K key){
return this.getStr(key, null);
}
/**
* 获取int型属性值<br>
* 无值或获取错误返回null
*
* @param key 属性名
* @return 属性值
*/
@Override
public Integer getInt(K key) {
return this.getInt(key, null);
}
/**
* 获取short型属性值<br>
* 无值或获取错误返回null
*
* @param key 属性名
* @return 属性值
*/
@Override
public Short getShort(K key){
return this.getShort(key, null);
}
/**
* 获取boolean型属性值<br>
* 无值或获取错误返回null
*
* @param key 属性名
* @return 属性值
*/
@Override
public Boolean getBool(K key){
return this.getBool(key, null);
}
/**
* 获取long型属性值<br>
* 无值或获取错误返回null
*
* @param key 属性名
* @return 属性值
*/
@Override
public Long getLong(K key){
return this.getLong(key, null);
}
/**
* 获取char型属性值<br>
* 无值或获取错误返回null
*
* @param key 属性名
* @return 属性值
*/
@Override
public Character getChar(K key){
return this.getChar(key, null);
}
/**
* 获取float型属性值<br>
* 无值或获取错误返回null
*
* @param key 属性名
* @return 属性值
*/
@Override
public Float getFloat(K key){
return this.getFloat(key, null);
}
/**
* 获取double型属性值<br>
* 无值或获取错误返回null
*
* @param key 属性名
* @return 属性值
*/
@Override
public Double getDouble(K key){
return this.getDouble(key, null);
}
/**
* 获取byte型属性值<br>
* 无值或获取错误返回null
*
* @param key 属性名
* @return 属性值
*/
@Override
public Byte getByte(K key){
return this.getByte(key, null);
}
/**
* 获取BigDecimal型属性值<br>
* 无值或获取错误返回null
*
* @param key 属性名
* @return 属性值
*/
@Override
public BigDecimal getBigDecimal(K key){
return this.getBigDecimal(key, null);
}
/**
* 获取BigInteger型属性值<br>
* 无值或获取错误返回null
*
* @param key 属性名
* @return 属性值
*/
@Override
public BigInteger getBigInteger(K key){
return this.getBigInteger(key, null);
}
/**
* 获取Enum型属性值<br>
* 无值或获取错误返回null
*
* @param clazz Enum 的 Class
* @param key 属性名
* @return 属性值
*/
@Override
public <E extends Enum<E>> E getEnum(Class<E> clazz, K key) {
return this.getEnum(clazz, key, null);
}
}