1700439490
1700439491
(2)in. defaultReadObject()
1700439492
1700439493
告知JVM按照默认规则读入对象,惯例的写法也是写在第一句话里。
1700439494
1700439495
(3)out. writeXX和in.readXX
1700439496
1700439497
分别是写入和读出相应的值,类似一个队列,先进先出,如果此处有复杂的数据逻辑,建议按封装Collection对象处理。
1700439498
1700439499
可能有读者会提出,这似乎不是一种优雅的处理方案呀,为什么JDK没有对此提供一个更好的解决办法呢?比如访问者模式,或者设置钩子函数(Hook),完全可以更优雅地解决此类问题。我查阅了大量的文档,得出的结论是:无解,只能说这是一个可行的解决方案而已。
1700439500
1700439501
再回到我们的业务领域,通过上述方法重构后,其代码的修改量减少了许多,也优雅了许多。可能你又要反问了:如此一来,Person类也失去了分布式部署的能力啊。确实是,但是HR系统的难点和重点是薪水计算,特别是绩效工资,它所依赖的参数很复杂(仅从数量上说就有上百甚至上千种),计算公式也不简单(一般是引入脚本语言,个性化公式定制),而相对来说Person类基本上都是“静态”属性,计算的可能性不大,所以即使为性能考虑,Person类为分布式部署的意义也不大。
1700439502
1700439503
1700439504
1700439505
1700439507
编写高质量代码:改善Java程序的151个建议 建议15:break万万不可忘
1700439508
1700439509
我们经常会写一些转换类,比如货币转换、日期转换、编码转换等,在金融领域里用到最多的要数中文数字转换了,比如把“1”转换为“壹”,不过,开源世界是不会提供此工具类的,因为它太贴合中国文化了,要转换还是得自己动手写,代码片段如下:
1700439510
1700439511
public class Client{
1700439512
1700439513
public static void main(String[]args){
1700439514
1700439515
System.out.println(“2=”+toChineseNumberCase(2));
1700439516
1700439517
}
1700439518
1700439519
//把阿拉伯数字翻译成中文大写数字
1700439520
1700439521
public static String toChineseNumberCase(int n){
1700439522
1700439523
String chineseNumber=””;
1700439524
1700439525
switch(n){
1700439526
1700439527
case 0:chineseNumber=“零”;
1700439528
1700439529
case 1:chineseNumber=“壹”;
1700439530
1700439531
case 2:chineseNumber=“贰”;
1700439532
1700439533
case 3:chineseNumber=“叁”;
1700439534
1700439535
case 4:chineseNumber=“肆”;
1700439536
1700439537
case 5:chineseNumber=“伍”;
1700439538
1700439539
case 6:chineseNumber=“陆”;
[
上一页 ]
[ :1.70043949e+09 ]
[
下一页 ]