Package cloud.opencode.base.config.converter
package cloud.opencode.base.config.converter
Type Converters Package
类型转换器包
This package provides type conversion capabilities for converting string configuration values to various target types.
此包提供类型转换能力,用于将字符串配置值转换为各种目标类型。
Features | 主要功能:
- 30+ built-in type converters - 30+内置类型转换器
- Custom converter registration - 自定义转换器注册
- SPI-based extension - 基于SPI的扩展
- Thread-safe converter registry - 线程安全的转换器注册表
Supported Types | 支持的类型:
- Primitives | 基本类型: String, int, long, double, float, boolean, BigDecimal, BigInteger
- Date/Time | 日期时间: Duration, LocalDate, LocalTime, LocalDateTime, Instant, ZonedDateTime
- Path/URI | 路径: Path, URI, URL
- Enum | 枚举: All enum types (case-insensitive) - 所有枚举类型(不区分大小写)
- Collections | 集合: List, Set, Map (comma-separated format) - List, Set, Map (逗号分隔格式)
Duration Format | Duration格式:
30s → Duration.ofSeconds(30) 5m → Duration.ofMinutes(5) 2h → Duration.ofHours(2) 1d → Duration.ofDays(1) PT1H30M → ISO-8601 format
Usage Examples | 使用示例:
// Get default registry with all built-in converters
ConverterRegistry registry = ConverterRegistry.defaults();
// Convert values
Duration timeout = registry.convert("30s", Duration.class);
Path file = registry.convert("/tmp/config.txt", Path.class);
MyEnum status = registry.convert("active", MyEnum.class);
// Register custom converter
registry.register(InetAddress.class, s -> InetAddress.getByName(s));
SPI Extension | SPI扩展:
// META-INF/services/cloud.opencode.base.config.advanced.ConfigConverterProvider
com.example.MyConverterProvider
public class MyConverterProvider implements ConfigConverterProvider {
public Class<?> supportedType() { return MyType.class; }
public ConfigConverter<?> create() { return s -> new MyType(s); }
}
- Since:
- JDK 25, opencode-base-config V1.0.0
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
ClassDescriptionConfiguration Type Converter Interface 配置类型转换器接口Type Converter Registry 类型转换器注册表SPI-based Converter Registry 基于SPI的转换器注册表