2013-07-29 68 views
-1

您好我有一個開關箱狀Java的開關盒返回類型

@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

你不能這樣做。你的返回類型必須是「Object」。 –

+0

「維護接受所有返回類型的返回類型」如果我得到你想要的,不可能 – Uselesssss

回答

1

你可以設計開關部件容易像很多:

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

但這隻會與返回類型Object工作。唯一的選擇是爲每種基本類型編寫方法。

所以沒有真正的解決方案。