将值赋给具有不同值的对象

时间:2017-05-28 14:36:13

标签: java type-conversion

我有一组格式化的数据集

elements-
ag,gold,320.0
h,hydrogen,gas

我有2类金属和非金属。它们共享相同的符号和名称类字段,但具有不同的属性类别

例如。金的质量为320.0,氢气为气体

我想知道如何将每个人分配到合适的班级。

这是我到目前为止所想的。

从文件中读取这些值后,将它们输入到数组中,然后检查[2]处的值是否为字符串或双精度将其分配给非金属(如果是字符串)和金属(如果是双精度),但是因为它是从文件读取时的字符串itll总是将其分配给非金属类。如果我解析它加倍,我不知道它是如何相互作用的。可能会出现错误,因为字母不能转换为double是正确的吗?

我将如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

解析为double会起作用,你只需要使用try-catch块。示例:

try{
    double d = Double.parseDouble(valuteAt[2]);
    // do what you want if it is double, for example
    Metal m = new Metal(..., d);
    }catch(NumberFormatException ex){
    // do what you want if it isn't double
    NonMetal m = new NonMetal(..., valueAt[2]);
    }