小编Mad*_*urf的帖子

使用List <>参数重载Java函数

我有2节课

public class Customer{
  ...
  public String getCustomerNumber();
  ...
}

public class Applicant{
   ....
   private Customer c;
   public Customer getCustomer(){ return c; }
   ...
}
Run Code Online (Sandbox Code Playgroud)

当提供客户或申请人列表时,我想要一个迭代列表并使用CustomerNumber执行某些操作的函数.

我试过重载该功能

public void processCustomerNumbers(List<Customer> custList)
...

public void processCustomerNumbers(List<Applicant> appList)
...
Run Code Online (Sandbox Code Playgroud)

但这些被视为重复的方法......有没有一种很好的方法来做到这一点,而不仅仅是有两个不同命名的函数?

java arguments function list

14
推荐指数
4
解决办法
1万
查看次数

将旧版Cobol/PL1迁移到Java的经验

原文问: 我想知道是否有人有过将大型Cobol/PL1代码库迁移到Java的经验?

该过程的自动化程度以及输出的可维护性如何?

从交易到OO的转变如何发挥作用?

任何经验教训或可能有益的资源/白皮书都将受到赞赏.


编辑7/7:当然NACA方法很有意思,能够继续对COBOL代码进行BAU更改,直到发布JAVA版本,这对任何组织都有好处.

与COBOL布局相同的过程Java的参数,使编码人员在熟悉Java语言时感到舒适,这对于具有大量代码库的大型组织来说是一个有效的论据.正如@Didier所指出的那样,每年节省300万美元可以在任何BAU变化中提供大量填充的空间,以便持续重构代码.正如他所说,如果你关心你的人,你会找到一种让他们快乐的方法,同时逐渐挑战他们.

我从@duffymo的建议中看出这个问题

最好尝试并从根本上真正理解问题,并将其重新表达为面向对象的系统

如果您正在进行任何BAU更改,那么在编写新OO系统的LONG项目生命周期中,您最终会编码并测试双倍的更改.这是NACA方法的主要好处.我有一些将Client-Server应用程序迁移到Web实现的经验,这是我们遇到的主要问题之一,由于BAU更改而不断变换需求.它使PM和日程安排成为一项真正的挑战.

感谢@hhafez,他的经验很好地被认为是"相似但略有不同",并且从Ada到Java的自动代码迁移有着相当令人满意的体验.

感谢@Didier的贡献,我还在研究你的方法,如果我有任何Q,我会告诉你一句话.

java migration cobol code-migration

5
推荐指数
1
解决办法
9099
查看次数

将小数格式化为字符串以提高性能

我正在编写一个应用程序,需要输出不同长度的十进制数,并将不同的比例缩放到没有小数点的字符串,以便将平面文件写入另一个系统的输入.例如

 12345  -> Length:10, Scale:2              -> 0001234500
 123.45 -> Length:10, Scale:2              -> 0000012345
 123.45 -> Length:10, Scale:3              -> 0000123450
-123.45 -> Length:10, Scale:3, signed:true -> -000123450
 123.45 -> Length:10, Scale:3, signed:true -> +000123450
Run Code Online (Sandbox Code Playgroud)

我编写的用于处理此功能的功能在下面,并且将被称为数十万次,因此我想确保没有更好,更有效的方法来执行此操作.我已经看过让DecimalFormat为我做更多事情的方法,但我看不到它处理我需要用小数位格式化但没有小数点.

protected String getFormattedDecimal( String value, int len, int scale, Boolean signed ) throws Exception{
    StringBuffer retVal = new StringBuffer();

    //Need a BigDecimal to facilitiate correct formatting
    BigDecimal bd = new BigDecimal( value );

    //set the scale to ensure that the correct number …
Run Code Online (Sandbox Code Playgroud)

java formatting performance decimal

5
推荐指数
1
解决办法
1207
查看次数

使用 Spring Boot @WebMvcTest 进行测试时如何从我的上下文中排除其他 @Controller

我有多个控制器,我的理解是通过在 @WebMvcTest 中指定一个控制器,其他控制器不会加载到上下文中。从文档

控制器 - 指定要测试的控制器。如果所有@Controller bean 都应添加到应用程序上下文中,则可以留空。

我的第一个控制器

@Controller
public class MyController {

    @Autowired
    private MyService myService;

    private final Logger logger = Logger.getLogger(this.getClass());

    @RequestMapping(value = "/", method = RequestMethod.GET)
    public @ResponseBody ResponseEntity<String> index() {
        try {
            myService.get();
            return new ResponseEntity<String>(HttpStatus.OK);
        } catch (Exception e) {
            logger.error(e);
            e.printStackTrace();
        }
        return new ResponseEntity<String>("REQUEST FAILED", HttpStatus.INTERNAL_SERVER_ERROR);
    }

}
Run Code Online (Sandbox Code Playgroud)

我的另一个控制器

@Controller
public class MyOtherController {

    @Autowired
    private MyOtherService myOtherService;

    etc...
}
Run Code Online (Sandbox Code Playgroud)

我的控制器测试

@RunWith(SpringRunner.class)
@WebMvcTest(controllers = { MyController.class }, secure = false)
@ActiveProfiles({ …
Run Code Online (Sandbox Code Playgroud)

java junit spring unit-testing spring-boot

3
推荐指数
1
解决办法
4224
查看次数

Java Calendar.set没有给出正确的结果

我无法看到下面的代码我出错了,它可能是显而易见的但我现在太盲目了.我将"01/01/2009"的日期传递给日历实例.然后我尝试将月份设置为3月份,我看到的输出是

格式:01/01/2009

cal月:2

cal.set( Calendar.MONTH, mth ); //mth = int 2

log.debug("formatted: " + formatter.format(cal.getTime()));
log.debug("cal month: "+Integer.valueOf(cal.get(Calendar.MONTH)).toString());
Run Code Online (Sandbox Code Playgroud)

当我将Calendar.DAY设置为最大值时,日期为31/01/2009

为什么我的月份设置没有采取?

java calendar date

2
推荐指数
1
解决办法
4285
查看次数

带有VarChar字符串的SQL ORDER BY子句的性能

我想在VARCHAR(200)字段上使用ORDER BY进行SELECT.阅读DB2 v9.1 for zOS站点就知道了

根据语言元素中描述的比较规则执行排序.

并且在字符串比较的规则中说

通过比较每个字符串的相应字节来比较两个字符串.如果字符串的长度不同,则使用空白填充的较短字符串的临时副本进行比较,使其与另一个字符串具有相同的长度.

我的问题是,这是否意味着我的ORDER BY子句会随着数据量的增加而变慢,因为在后台进行LENGTH()函数调用,然后对每个字符串执行填充以便按顺序返回结果?

sql db2 performance

1
推荐指数
1
解决办法
2024
查看次数