gpt4 book ai didi

java - ChoiceFormat.setChoices 关于格式参数类型和文档的混淆

转载 作者:行者123 更新时间:2023-12-01 16:04:09 24 4
gpt4 key购买 nike

来自java.text.ChoiceFormat API:

setChoices(double[] limits, String[] formats): Set the choices to be used in formatting.

Parameters:

  • limits - contains [...]
  • formats - are the formats you want to use for each limit. They can be either Format objects or Strings. When formatting with object Y, if the object is a NumberFormat, then ((NumberFormat) Y).format(X) is called. Otherwise Y.toString() is called.

我很难理解 formats 参数的文档:如果它被声明为String[]格式

请注意,有趣的是,setChoices 的 getter 对应项声明如下:

这是 API 中的错误吗? setter 是否应该声明为 setChoices(double[], Object[]) ,还是我不明白如何正确使用 setChoices

最佳答案

您可以查看the source code

注释中到处都提到了字符串/格式化程序的二元性,但是实现仅复制字符串

例如格式化 double :

        public StringBuffer format(double number, StringBuffer toAppendTo,
FieldPosition status) {
// find the number
int i;
for (i = 0; i < choiceLimits.length; ++i) {
if (!(number >= choiceLimits[i])) {
// same as number < choiceLimits, except catchs NaN
break;
}
}
--i;
if (i < 0)
i = 0;
// return either a formatted number, or a string
return toAppendTo.append(choiceFormats[i]);
}

在返回中,您可以清楚地看到它只是从字符串数组中复制,并且没有尝试进行格式化。

我只是认为该功能被“遗忘”了。

关于java - ChoiceFormat.setChoices 关于格式参数类型和文档的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3028129/

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