这个是java NumberFormat 类中的源代码,各位大虾可不可以帮我解释一两个算法呢。急急急急

我们要上去讲几个精髓。可是我看都看不懂??由于不能全部贴出来,所以我是截取的。我在eclipse里面复制的!可不可以帮我解释下主要的算法,感激不进。publicabstr... 我们要上去讲几个精髓。可是我看都看不懂??由于不能全部贴出来,所以我是截取的。我在eclipse里面复制的!可不可以帮我解释下主要的算法,感激不进。
public abstract class NumberFormat extends Format {
public static final int INTEGER_FIELD = 0;

public static final int FRACTION_FIELD = 1;

public StringBuffer format(Object number,
StringBuffer toAppendTo,
FieldPosition pos) {
if (number instanceof Long || number instanceof Integer ||
number instanceof Short || number instanceof Byte ||
(number instanceof BigInteger &&
((BigInteger)number).bitLength() < 64)) {
return format(((Number)number).longValue(), toAppendTo, pos);
} else if (number instanceof Number) {
return format(((Number)number).doubleValue(), toAppendTo, pos);
} else {
throw new IllegalArgumentException("Cannot format given Object as a Number");
}
}

public Number parse(String source) throws ParseException {
ParsePosition parsePosition = new ParsePosition(0);
Number result = parse(source, parsePosition);
if (parsePosition.index == 0) {
throw new ParseException("Unparseable number: \"" + source + "\"",
parsePosition.errorIndex);
}
return result;
}

//============== Locale Stuff =====================

=======================privates===============================

private static NumberFormat getInstance(Locale desiredLocale,
int choice) {

String[] numberPatterns = (String[])cachedLocaleData.get(desiredLocale);
if (numberPatterns == null)
ResourceBundle resource = LocaleData.getLocaleElements(desiredLocale);
numberPatterns = resource.getStringArray("NumberPatterns");

cachedLocaleData.put(desiredLocale, numberPatterns);
}

DecimalFormatSymbols symbols = new DecimalFormatSymbols(desiredLocale);
int entry = (choice == INTEGERSTYLE) ? NUMBERSTYLE : choice;
DecimalFormat format = new DecimalFormat(numberPatterns[entry], symbols);

if (choice == INTEGERSTYLE) {
format.setMaximumFractionDigits(0);
format.setDecimalSeparatorAlwaysShown(false);
format.setParseIntegerOnly(true);
} else if (choice == CURRENCYSTYLE) {
format.adjustForCurrencyDefaultFractionDigits();
}

return format;
}
NumberFormat 它的核心是什么呢,我不知道哪个是它的核心,无从下手,因为代码不能全部粘贴进去,所以截取了一点点。可以帮我解释下它的函数!谢谢
展开
 我来答
百度网友9b2daed5f
2009-08-13 · 超过10用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:32.4万
展开全部
楼主贴的代码一点也没有涉及到format的核心,都是个外围调用。

还是希望楼主能静下心来好好读读这些源码,对OODP(面向对象设计与编程)的理解可加深很多啊。

祝楼主好运!

-----------
再补充下, 想起一个好方法, 楼主可以写个例子, 运行,再在Eclipse里以debug方式跟踪进去,看看那些代码具体是怎么执行的。

这个过程很美,以前自己研究Hibernate框架就是那样开始的,像看一部长篇小说那样。

祝福楼主。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1aea09a5d
2009-08-13 · TA获得超过357个赞
知道小有建树答主
回答量:1122
采纳率:0%
帮助的人:169万
展开全部
抽象类,三个函数。要说那个?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式