嗨我有一个类似
的Switch案例@Override
public <RERURN_TYPE...???> convert(Object argToken, Object argFieldToken) {
Object obj = Precondition.ensureNotNull(argToken, "Input Object");
Field field = (Field) Precondition
.ensureNotNull(argFieldToken, "Field");
Type type = Type.valueOf(field.getType().getName());
switch (type) {
case BYTE:
break;
case SHORT:
break;
case INTEGER:
return Integer.parseInt(argToken.toString());
break;
case LONG:
break;
case FLOAT:
break;
case DOUBLE:
break;
case CHARACTER:
break;
case BOOLEAN:
break;
case STRING:
break;
case BIGINT:
break;
default:
break;
}
return null;
}
这里我转换的“argToken”值取决于字段的类型。最后,返回值将根据该字段类型而改变。那么如何维护接受所有返回类型的返回类型。
任何人都可以解释一下。我卡在这里...... 请...
阿玛尔
答案 0 :(得分:1)
您可以更轻松地设计开关部件:
if(argToken instanceof Integer) {
return (int) argToken;
} else if(/* some other types */) {
//cast and return the other types
} else {
return null;
}
但这只适用于返回类型Object
。唯一的选择是为每种基元类型编写方法。
所以没有真正的解决方案。