java - Java中递归方法中的局部变量的外部化

标签 java recursion

我有一个递归方法,它具有本地String变量:

private void recursiveUpdate(int id){
    String selectQuery="Select ...";
    String updateQuery="Update or rollback ..."

    ...

    for(int childID: children)
        recursiveUpdate(childID);
}

是否有任何理由像这样外部化本地字符串变量:

private static final String selectQuery="Select ...";
private static final String updateQuery="Update or rollback ..."

private void recursiveUpdate(int id){
    ...

    for(int childID: children)
        recursiveUpdate(childID);
}

最佳答案

从技术角度来看,两者之间的差异应该可以忽略不计,因为在任何一种情况下,您总是使用相同的字符串实例。如果您在每次调用中解析这些查询,您也可能会考虑将其外部化(例如使用准备好的语句)。

从开发的角度来看,我可能会将查询外部化,将它们与调用逻辑分开。

关于java - Java中递归方法中的局部变量的外部化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26551072/

相关文章:

java - 如何让矩形相交后消失

Ruby 左递归与右递归

list - 我对 Haskell 'length' 函数的重新定义不起作用

python - Python 是否优化尾递归?

java - 如何修复java.lang.NoClassDefFoundError : javax/inject/Provider when trying to use OWL API

java - JPA 自定义查询仅返回某些值

java - 如何实现滚动到底部时刷新的 JTable

c - 无法推断为什么我的递归函数中会出现段错误

Scala 递归没有副作用

java - 在 fxml 中扩展的场景构建器自定义组件