当null值时,Identifier.parse崩溃

时间:2018-02-22 02:14:06

标签: android ibeacon

基本上我有一个由三个参数定义的区域。 有时我可以指定两个或有时我可以指定三个:

private void create_region(String UUID, String Major, String Minor) {
    region = new Region("my-beacon-region",
            Identifier.parse(UUID),
            Identifier.parse(Major),
            Identifier.parse(Minor));
}

如果我将一个空字符串作为Minor传递,例如程序崩溃。 我该如何解决?如果我喜欢这样,那就行了。

region = new Region("my-beacon-region",
                Identifier.parse(UUID),
                Identifier.parse(Major),
                null);

谢谢!

2 个答案:

答案 0 :(得分:0)

你可以在java中为同一个对象创建许多constractor。我试着创建一个只有两个params的约束器,你自己将第三个初始化为null。然后你可以通过只传递前两个参数

来调用它

答案 1 :(得分:0)

检查值是否为空,如果是,请跳过对Identifier.parse(...)

的调用
private void create_region(String UUID, String Major, String Minor) {
  Identifier Id1 = null;
  Identifier Id2 = null;
  Identifier Id3 = null;

  if (UUID != null) {
    Id1 = Identifier.parse(UUID);
  }

  if (Major != null) {
    Id2 = Identifier.parse(Major);
  }

  if (Minor != null) {
    Id3 = Identifier.parse(Minor);
  }

  region = new Region("my-beacon-region",
        Id1,
        Id2,
        Id3);
}