当前位置: 首页 > 知识库问答 >
问题:

是否可以编写简短的if语句[关闭]

司徒耀
2023-03-14

想改进这个问题吗 通过编辑此帖子,添加详细信息并澄清问题。

这是我的if语句。我只想写得更短。因为我认为这些是无效的。顺便说一句,每个if语句都是独立的。

for (int i = 0; i < count; i++) {

    if (js.getBoolean("[" + i + "].createdDate")) {
        String a = js.get("[" + i + "].createdDate").toString();
        Assert.assertTrue(a.matches(actual_createdDate));
    }
    if (js.getBoolean("[" + i + "].lastModifiedDate")) {
        String b = js.get("[" + i + "].lastModifiedDate").toString();
        Assert.assertTrue(b.matches(actual_modifiedDate));
    }
    if (js.getBoolean("[" + i + "].uuid")) {
        String c = js.get("[" + i + "].uuid").toString();
        Assert.assertTrue(c.matches(actual_uuid));
    }
    if (js.get("[" + i + "].coverPhoto") != null) {
        String d = response1.jsonPath().get("[" + i + "].coverPhoto.tempDownloadURL").toString();
        Assert.assertTrue(d.matches(actual_temp_url));
        System.out.println(js.get("[" + i + "].coverPhoto.tempDownloadURL").toString() + " is equalent to : " + actual_temp_url);
    }
    if (js.get("[" + i + "].coverPhoto.metadata['Thumbnail-Large']") != null) {
        String e = response1.jsonPath().get("[" + i + "].coverPhoto.metadata['Thumbnail-Large']").toString();
        Assert.assertTrue(e.matches(actual_metaData_url));
        System.out.println(js.get("[" + i + "].coverPhoto.metadata['Thumbnail-Large']").toString() + " is equalent to : " + actual_metaData_url);
    }

}

共有2个答案

傅翰池
2023-03-14

我改了,但有错

异常线程"main"java.lang.NullPointerException atio.restassured.path.json.JsonPath.getBoolean(JsonPath.java:214)at Album.assert等于(Album.java:240)at Album.main(Album.java:52)

private static void assertEqual(JsonPath js /*idk the type*/, int i, String fieldName, String expectedValue) {
    String property = "[" + i + "]." + fieldName;
    if (js.getBoolean(property)) {
        String value = js.get(property).toString();
        Assert.assertTrue(value.matches(expectedValue));
    }
}

for (int i = 0; i < count; i++) {
        assertEqual(js, i, "createdDate", actual_createdDate);
        assertEqual(js, i, "lastModifiedDate", actual_modifiedDate);
        assertEqual(js, i, "uuid", actual_uuid);
        assertEqual(js, i, "coverPhoto", actual_temp_url);
        assertEqual(js, i, "coverPhoto.metadata['Thumbnail-Large']", actual_metaData_url);
    }
阳宗清
2023-03-14

请允许我向您介绍在怪人圈子中称为“函数”的一流代码重用单元;)

for (int i = 0; i < count; i++) {
    assertEqual(js, i, "createdDate", actual_createdDate);
    assertEqual(js, i, "lastModifiedDate", actual_modifiedDate);
    assertEqual(js, i, "uuid", actual_uuid);
    assertEqual(js, i, "coverPhoto", actual_temp_url);
    assertEqual(js, i, "coverPhoto.metadata['Thumbnail-Large']", actual_metaData_url);
}
    
private void assertEqual(JS js /*idk the type*/, int i, String fieldName, String expectedValue) {
    String property = "[" + i + "]." + fieldName;
    if (js.getBoolean(property)) {
        String value = js.get(property).toString();
        Assert.assertTrue(value.matches(expectedValue));
    }
}
 类似资料:
  • 是否可以在x86汇编语言中模拟if-statment(使用masm语法)?我想在x86汇编语言中做这样的事情,但我不确定应该使用哪个运算符来模拟if-ore语句。我应该使用指令,还是指令,还是其他指令?

  • 问题内容: 可以从python中的单行方法返回 寻找这样的东西 尝试过,并且语法无效 我可以轻松做到: 但只是好奇我是否可以将上述if语句合并为一行 问题答案: 可以在一行上编写标准的“ if”语句: 但是pep 8样式指南建议不要这样做: 通常不建议使用复合语句(同一行上有多个语句)

  • 在java中是否可以将if语句转换为switch语句?

  • 我想知道是否可以使用表达式体成员重写以下方法:

  • 我有两个问题。 ①当useState初始值真假时,if语句如何适应下面? 比如说。。 ②当if语句为true和false时,如何使setGoodBotton从React钩子和if语句适应下面? 例如…(这不是工作)

  • 我只是想知道,有没有更快的方法写这个? 我知道我可以把它们放在同一条线上,但是有没有更简单的方法可以让我不需要第二次重写“名称 == ''" 部分?有点像这样: 其中首先计算距离部分,如果满足其中一个参数,则名称==''部分将与其进行检查。