-1

こんにちは、私は次のようなスイッチケースを持っています

@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;
}

ただし、これは return type でのみ機能しObjectます。唯一の代替手段は、プリミティブ型ごとにメソッドを記述することです。

したがって、根本的な解決策はありません。

于 2013-07-29T18:48:38.767 に答える