UUID

HTTP 请求

加密/解密

Common 常用模块

Reflection 反射

Input/Output 输入/输出

ConvertBasicValue 教程

本教程旨在介绍 lightweight-component/aj-util 库中的 ConvertBasicValue 类。ConvertBasicValue 提供了一组实用工具方法,用于将对象安全地转换为基本的 Java 数据类型。本指南将详细介绍每个方法的目的,并提供相应的用法示例。

引言

ConvertBasicValue 类提供了一系列方法,可以将对象安全地转换为各种基本 Java 类型,例如 StringbooleanintlongfloatdoubleDateBigDecimal。 这些方法能够处理空值(null),并在适当的情况下尝试解析字符串表示形式,从而为直接类型转换提供了一种更强大的替代方案。

方法详解

1. basicCast(Object value, Class<T> clz)

安全地将对象强制转换为指定的类类型。 此方法利用 basicConvert 执行初始转换,然后将结果强制转换为所需的类型。

示例:

Integer intValue = ConvertBasicValue.basicCast("123", Integer.class);
// intValue 的值为 123

2. basicConvert(Object value, Class<?> clz)

将对象转换为指定的类类型。 此方法处理 null 值并执行特定于类型的转换。

此方法包含不同类型转换的核心逻辑。 让我们看看它处理的一些特定转换:

3. toBoolean(Object value)

将对象转换为布尔值。 此方法处理各种输入类型,包括字符串、数字和布尔值。

示例:

assertTrue(ConvertBasicValue.toBoolean(true));
assertTrue(ConvertBasicValue.toBoolean("true"));
assertTrue(ConvertBasicValue.toBoolean("1"));
assertFalse(ConvertBasicValue.toBoolean("false"));
assertFalse(ConvertBasicValue.toBoolean(0));

4. object2int(Object value)

将对象转换为整数。 此方法处理 null 值并尝试解析字符串表示形式。

示例:

assertEquals(0, ConvertBasicValue.object2int(null));
assertEquals(123, ConvertBasicValue.object2int("123"));
assertEquals(-456, ConvertBasicValue.object2int("-456"));

5. object2long(Object value)

将对象转换为长整数。 此方法处理 null 值并尝试解析字符串表示形式。

示例:

assertEquals(0L, ConvertBasicValue.object2long(null));
assertEquals(123L, ConvertBasicValue.object2long("123"));
assertEquals(-456L, ConvertBasicValue.object2long("-456"));

6. object2double(Object value)

将对象转换为双精度浮点数。 此方法处理 null 值并尝试解析字符串表示形式。

示例:

assertEquals(0.0, ConvertBasicValue.object2double(null), 0.0001);
assertEquals(3.14, ConvertBasicValue.object2double("3.14"), 0.0001);

单元测试示例

以下是单元测试中的一些示例:

import org.junit.jupiter.api.Test;
import static com.ajaxjs.util.ConvertBasicValue.*;
import static org.junit.jupiter.api.Assertions.*;

public class TestConvertBasicValue {
    @Test
    public void testToBoolean() {
        assertTrue(toBoolean(true));
        assertTrue(toBoolean("true"));
        assertTrue(toBoolean("True"));

        assertFalse(toBoolean("fAlse"));
        assertFalse(toBoolean("null"));

        assertTrue(toBoolean("on"));
        assertTrue(toBoolean("yes"));
        assertTrue(toBoolean(1));
        assertTrue(toBoolean("1"));
    }

    @Test
    public void testObject2Int() {
        assertEquals(0, object2int(null));
        assertEquals(100, object2int(100));
        assertEquals(123, object2int("123"));
    }

    @Test
    public void testObject2Long() {
        assertEquals(0L, object2long(null));
        assertEquals(100L, object2long(100L));
        assertEquals(123L, object2long("123"));
    }

    @Test
    public void testObject2Double() {
        assertEquals(0.0, object2double(null), 0.0001);
        assertEquals(3.14, object2double(3.14), 0.0001);
    }
}

总结

ConvertBasicValue 类提供了一组有用的实用工具,用于将对象安全地转换为基本的 Java 类型。 通过使用这些方法,您可以简化代码并更优雅地处理潜在的 null 值和解析错误。 请记住查阅库的 Javadoc 以获取最新信息和其他方法。