我正在處理一個API,當我要求一個屬性時返回Object
。在Java中將Object轉換成Long的更好方法是什麼?
Object x = r.getProperty("id");
但我知道這個事實,特別是這個屬性是Long
。所以這些是我正在稱重的兩個選項:
Long x = Long.parseLong(r.getProperty("id").toString());
Long x = (Long)r.getProperty("id");
哪一個是首選的性能?
我正在處理一個API,當我要求一個屬性時返回Object
。在Java中將Object轉換成Long的更好方法是什麼?
Object x = r.getProperty("id");
但我知道這個事實,特別是這個屬性是Long
。所以這些是我正在稱重的兩個選項:
Long x = Long.parseLong(r.getProperty("id").toString());
Long x = (Long)r.getProperty("id");
哪一個是首選的性能?
如果你知道一個事實,這是一個Long
,我肯定會跟投去。它更清晰,可能更有效。如果您確定退貨類型爲Number
,則可致電Number.longValue()
。如果這還不確定,那麼我可以使用解析選項來保證安全,並避免使用instanceof
樣板。
同意,而且我假設演員會更快一點,雖然這個操作的速度可能對性能沒有任何實際影響,除非你的程序根本沒有IO。 –
是的,這個問題更多的是好奇心,這個問題肯定是程序中最慢的部分。 –
第二種方法更快,但它不是很寬容:除非值實際上是Long
,否則代碼將崩潰。
第一種方法,在另一方面,將生存型的變化:如果以後決定使用Integer
,String
,Byte
,或打印兼容的數值與long
一些其他類型的具有自定義toString
,則代碼正在工作。因此,第一種方法更加健壯。
基於直覺本能 - 可能是第二個。減少分配空間和構建的對象。 – Mshnik
爲什麼它轉換爲字符串,然後將其轉換回長有更好的表現不僅僅是它鑄造長 – Natecat
我雖然一樣,但我一直聽說,強制轉換有 –