package com.xiaoleilu.hutool.getter;
import java.math.BigDecimal;
import java.math.BigInteger;
/**
* 基本类型的getter接口<br>
* 提供一个统一的接口定义返回不同类型的值(基本类型)<br>
* @author Looly
*/
public interface BasicTypeGetter<K> {
/*-------------------------- 基本类型 start -------------------------------*/
/**
* 获取Object属性值
* @param key 属性名
* @return 属性值
*/
Object getObj(K key);
/**
* 获取字符串型属性值
*
* @param key 属性名
* @return 属性值
*/
String getStr(K key);
/**
* 获取int型属性值
*
* @param key 属性名
* @return 属性值
*/
Integer getInt(K key);
/**
* 获取short型属性值
*
* @param key 属性名
* @return 属性值
*/
Short getShort(K key);
/**
* 获取boolean型属性值
*
* @param key 属性名
* @return 属性值
*/
Boolean getBool(K key);
/**
* 获取long型属性值
*
* @param key 属性名
* @return 属性值
*/
Long getLong(K key);
/**
* 获取char型属性值
*
* @param key 属性名
* @return 属性值
*/
Character getChar(K key);
/**
* 获取float型属性值<br>
*
* @param key 属性名
* @return 属性值
*/
Float getFloat(K key);
/**
* 获取double型属性值
*
* @param key 属性名
* @return 属性值
*/
Double getDouble(K key);
/**
* 获取byte型属性值
*
* @param key 属性名
* @return 属性值
*/
Byte getByte(K key);
/**
* 获取BigDecimal型属性值
*
* @param key 属性名
* @return 属性值
*/
BigDecimal getBigDecimal(K key);
/**
* 获取BigInteger型属性值
*
* @param key 属性名
* @return 属性值
*/
BigInteger getBigInteger(K key);
/**
* 获得Enum类型的值
*
* @param clazz Enum的Class
* @param key KEY
* @return Enum类型的值,无则返回Null
*/
public <E extends Enum<E>> E getEnum(Class<E> clazz, K key);
/*-------------------------- 基本类型 end -------------------------------*/
}