哪个更有效的Object类转换或Double.parseDouble(String)

Wil*_*oef 1 java

类似于此的代码块引发了一些争论,即代码的哪一部分最有效,或者是否有更正确的方法来执行此操作.一个论点是,强制转换比创建要解析的字符串更有效.一个论点是多个类强制转换创建的对象多于创建要解析的字符串.

什么是"最佳实践"?

Object some_num_obj;
double some_num;
if(some_num_obj instanceof Integer)
{
    some_num = (double) (int) (Integer) some_num_obj;
}
else if(some_num_obj instanceof Double)
{
    some_num = (Double) some_num_obj;
}
else
{
     some_num = Double.parseDouble(some_num_obj.toString());
}
Run Code Online (Sandbox Code Playgroud)

Pet*_*rey 5

最有效也可能是最快的是使用Number.doubleValue和Double.parseDouble

if(some_num_obj instanceof Number)
    some_num = ((Number) some_num_obj).doubleValue();
else
    some_name = Double.parseDouble(some_num_obj.toString());
Run Code Online (Sandbox Code Playgroud)