package jef.common;
/**
* 轻量级容器
*
* @author jiyi
*
*/
public class PairSO<T> {
public String first;
public T second;
public PairSO() {
}
public PairSO(String f, T s) {
first = f;
second = s;
}
/**
* 利用Java的泛型擦除机制,将当前对象的second赋值为另一类型,并将当前对象当做另一泛型实例使用。
*
* @param v
* @return
*/
public <V> PairSO<V> replaceSecond(V v) {
@SuppressWarnings("unchecked")
PairSO<V> r = (PairSO<V>) this;
r.second = v;
return r;
}
/**
* 将当前对象的泛型参数转换为另一泛型参数.
* @return
*/
public <V> PairSO<V> cast() {
@SuppressWarnings("unchecked")
PairSO<V> r = (PairSO<V>) this;
return r;
}
public String getFirst() {
return first;
}
public void setFirst(String first) {
this.first = first;
}
public T getSecond() {
return second;
}
public void setSecond(T second) {
this.second = second;
}
@Override
public String toString() {
return first + ":" + second;
}
}