Java Switch Case返回类型

时间:2013-07-29 18:40:39

标签: java

嗨我有一个类似

的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”值取决于字段的类型。最后,返回值将根据该字段类型而改变。那么如何维护接受所有返回类型的返回类型。

任何人都可以解释一下。我卡在这里...... 请...

阿玛尔

1 个答案:

答案 0 :(得分:1)

您可以更轻松地设计开关部件:

if(argToken instanceof Integer) {
    return (int) argToken;
} else if(/* some other types */) {
    //cast and return the other types
} else {
    return null;
}

但这只适用于返回类型Object。唯一的选择是为每种基元类型编写方法。

所以没有真正的解决方案。