问题描述
我有一个方法如下:public List findBySth(String model,String sth, IntOrStr parameter){ //do something;}这个方法里我要限制parameter参数要么是int要么是String,所以我声明了一个枚举IntOrStr,public enum IntOrStr {}当这个parameter参数被声明为IntOrStr是,IntOrStr返回int或者String Type,但是这个枚举IntOrStr应该怎么写,希望有人能帮我下,先感谢大家了
解决方案
这个想法很有意思..但我想还有另一种简单的方式可以实现它..public List findBySth(String model, String sth, int parameter) {return findBySth(model, sth, parameter, null);}public List findBySth(String model, String sth, String parameter) {return findBySth(model, sth, null, parameter);}private List findBySth(String model, String sth, Integer intParam, String strParam) {// do something;}
解决方案二:
难道,不可以用重载吗。
解决方案三:
public enum TetEnum { STRING { @Override public Object getValue() { return "String"; } }, INTEGER { @Override public Object getValue() { return Integer.MAX_VALUE; } }; public abstract Object getValue();}