-1

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

谁能解释一下。我卡在这里...拜托...

阿马尔

4

1 回答 1

1

您可以像这样更容易地设计开关部分:

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

但这仅适用于返回类型Object。唯一的选择是为每个原始类型编写方法。

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

于 2013-07-29T18:48:38.767 回答