Java : Function local variable initialization

标签 java

<分区>

我有一个java函数。在第一个函数中,返回变量“ret”用第二个函数中的声明初始化,它在需要时在 try 内部初始化。大家觉得哪个更好呢?请以 List 为例,它可以是一个字符串和类型。谢谢

第一个函数:

public List<String> getNames() {
  List<String> ret = new ArrayList<String>();
  try {
       // use ret
  } catch(Exception e){

  }
}

第二个函数:

public List<String> getNames() {
  List<String> ret = null;
  try {
       //  some more code
       ret = new ArrayList<String>();
       // use ret
  } catch(Exception e){

  }
}

最佳答案

两者之间的唯一区别是,如果 try block 没有正常完成,在第一种情况下将返回一个空白列表。而在第二种情况下,将返回 NULL。

Which approach is better?

取决于您的要求。

我通常使用第二种方法,因为空白仍然会占用内存。

话虽如此,如果我假设列表不会被 getNames() 之外的元素填充,那么占用内存的空白列表是不好的。

相反,如果列表中充满了 getNames() 之外的元素,例如,在 getNames() 的调用方法中,则返回空白列表也可以。

关于Java : Function local variable initialization,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20367820/

相关文章:

java - 如何计算程序运行时消耗了多少时间

Java:从 JSON 解析数组的数组

java - 使用 Core Java 中的递归机制在另一个字符串中查找一个字符串

Java 性能和内存 : LinkedList & arrays

java - 如何处理静态方法覆盖?

java - 为什么大多数 hibernate 应用程序都使用序列来生成 id?

Java FileOutputStream 默认创建路径

java - 重新生成随机数。安卓?

java - 在java中解析字符串时出现MalformedJsonException

java - Google Ads 会中断该应用。减慢帧率