gpt4 book ai didi

java - 给定一个格式字符串 (String.format()/Formatter) 是否有一种简单的方法来获取预期的参数类型?

转载 作者:太空狗 更新时间:2023-10-29 14:26:20 26 4
gpt4 key购买 nike

我正在为我们的 Android 应用中的本地化做一些单元测试。现在,我的单元测试会检查我们所有不同语言环境的所有不同格式字符串,以确保翻译人员不会弄乱它们(他们往往会这样做)。基本上我确保调用 String.format() 不会抛出格式异常。

唯一的缺点是我需要手动将每个字符串添加到测试中。我正在进行一项替换测试,该测试使用反射来查找 R.string 中的每个字符串。获取字符串不是问题,但是是否有任何简单的方法来确定格式字符串期望的参数的数量和类型?

String.format() 如果你传递给它太多的参数,它不会提示,所以我可能只传递一个大的整数数组(它可以被拆箱到 %d 或 toString()'ed 到 %s)然后看对于格式异常。不过,如果我能以正确的数量传递正确类型的参数,那就更好了:)

最佳答案

老实说,我认为检查Exception 的方法是您在不使用自己成熟的解析器的情况下遇到的最好方法。

如果您真的有兴趣编写代码来从 the format(...) method of Formatter.java 中查找所有元素(将作为参数) (我找不到 anchor ,所以你只需按 control+f format(Lo 就可以找到)。这段代码也可以在 sources\android 下的 SDK 中找到-16\java\util,在私有(private)方法doFormat中。

一旦您了解了它用于查找每个部分并对其进行解析的方法,它实际上是一个相对简单的代码。我认为通过一些工作,或许还可以从 Formatter 进行一些复制粘贴,您可以设置您自己的代码,它可以简单地找到 String 的元素, 而不是替换它们。

关于java - 给定一个格式字符串 (String.format()/Formatter) 是否有一种简单的方法来获取预期的参数类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12188330/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com