-2

我有一个方法需要检查 Object 的值并确定其数据类型,然后将传入的数据转换为value适当的格式化 java 数据类型。有没有更优雅的方法来做到这一点?转变?功能性?

我正在使用 Apache 化学。目标是转换为 CMIS 将接受的类型。我尝试的原始代码是使用他们的 API 来做:PropertyType type = PropertyType.fromValue(value); 最初,我打算使用这种类型来确定如何进行转换。但是,fromValue 方法总是返回 null,所以我需要从值本身获取类型。

这是它最初的样子(使用化学 API):

PropertyType type = propertyDefinition.getPropertyType();
if (type.equals(PropertyType.BOOLEAN) {
   return Boolean.parseBoolean(value);

这只能通过获取 CMIS 连接的类型来实现。我还需要它从属性文件中获取类型,因此我无法访问 API,只有值。

if (value instanceOf Boolean) {
    return Boolean.parseBoolean(value);
} else if (value instanceof Integer) {
    return Integer.parseInt(value);
} else if (value instanceof Double) {
    return Double.valueOf(value);
} else if (value instanceof DateTime) {
    DateTimeFormatter dateFormat = new DateTimeFormatterFactory(format)
        .createDateTimeFormatter();
    return dateFormat.parseDateTime(value).toDate();
} else if (value instanceof String) {
    return value;
}
4

1 回答 1

0

我不确定我是否正确理解了您的问题,但我认为您有一个名为 value 的对象,您想检查它是什么类型的对象并为其设置适当的 PropertyType。如果是这种情况,试试这个:

if (value instanceOf Boolean) {
    return PropertyType.BOOLEAN;
} else if (value instanceof Integer) {
    return PropertyType.INTEGER;
} else if (value instanceof Double) {
    return PropertyType.DECIMAL; // well, sort of, maybe.
} else if (value instanceof DateTime) {
    return PropertyType.DATETIME;
} else if (value instanceof String) {
    return PropertyType.STRING;
}
于 2016-01-07T23:43:48.123 回答