Java 自定义 Converter 转换 null 字符串

在 Java 开发中,我们经常需要将字符串转换为其他类型,例如将字符串转换为整数。但是,如果字符串为 null,直接转换可能会抛出 NullPointerException。为了避免这种情况,我们可以自定义一个 Converter,使其能够处理 null 字符串。

自定义 Converter

首先,我们需要定义一个 Converter 接口,然后实现这个接口,以处理 null 字符串。

public interface Converter<S, T> {
    T convert(S source);
}
  • 1.
  • 2.
  • 3.

接下来,我们实现一个将字符串转换为整数的 Converter。如果输入的字符串为 null 或者无法转换为整数,我们可以选择返回一个默认值。

public class StringToIntegerConverter implements Converter<String, Integer> {
    @Override
    public Integer convert(String source) {
        if (source == null || source.isEmpty()) {
            return 0;
        }
        try {
            return Integer.parseInt(source);
        } catch (NumberFormatException e) {
            return 0;
        }
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

使用自定义 Converter

现在,我们可以使用自定义的 Converter 来转换字符串了。这里是一个使用示例:

public class Main {
    public static void main(String[] args) {
        Converter<String, Integer> converter = new StringToIntegerConverter();

        String str1 = "123";
        String str2 = null;
        String str3 = "abc";

        System.out.println(converter.convert(str1)); // 输出 123
        System.out.println(converter.convert(str2)); // 输出 0
        System.out.println(converter.convert(str3)); // 输出 0
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

序列图

以下是使用自定义 Converter 的序列图:

字符串 Converter 用户 字符串 Converter 用户 alt [S 可转换为整数] [S 不可转换为整数] alt [S 为 null] [S 不为 null] convert(S) 检查 S 是否为 null 返回默认值 尝试转换 S 为整数 返回转换后的整数 返回默认值

通过自定义 Converter,我们可以优雅地处理 null 字符串,避免抛出异常。这种方法提高了代码的健壮性和可读性。