2014-02-26 86 views
0

我已經實現了一些可以正常工作的服務。該服務具有以下屬性:不能從字符串轉換爲整數

@Property(name = MyService.PROXY_PORT, label = "Proxy Port", description = "Proxy Port", value= "8080") 
    private static final String PROXY_PORT = "proxy.port"; 

我得到了port屬性的值如下:

.. 
... 
properties = context.getProperties(); 
String port = properties.get(PROXY_PORT).toString(); 
... 

port在這種情況下會導致8080。現在我想將這個String轉換爲Integer。我試過如下:

int portInt = Integer.parseInt(port); 
int portInt2 = Integer.getInteger(port); 

兩個結果無效:(

我做了什麼撥錯

+3

'port'有價值嗎? – ItachiUchiha

+7

int如何爲null –

+2

把'System.out.println(「**」+ port +「**」);'int portInt = Integer.parseInt(port);'告訴我們輸出。 – StephaneM

回答

1

如果端口具有價值和不爲空然後嘗試:

int portInt = Integer.valueOf(port.trim()); 
0

嘗試,如果它的工作:

int portInt = Integer.parseInt(port+""); // check if the port value is coming or not before parse it. 
int portInt2 = Integer.getInteger(port+""); 
+1

爲什麼這個工作和簡單的使用端口不 – Mark

+0

同意男人,但它可能是一種情況,同樣的問題發生在我身上,與字符串解析...所以我試試這種方式,它工作 –

+0

這將產生一個稍微不同的例外(如果我們有一個例外,OP沒有告訴我們),但沒有解決問題。 –

3

考慮使用PropertiesUtil,恰好對於這種情況下創建的工具類:

int port = PropertiesUtil.toInteger(properties.get(PROXY_PORT), 8080); 

第二個參數是默認值。