Java中的空字符串vs空字符串

Ana*_*and 1 java string

我已经阅读了一些链接,最好返回一个字符串而不是null,因为它消除了它的可能性NullPointerException.

但是,如果我们从内存的角度思考,我认为空字符串确实需要一些堆空间,因为它毕竟是一个对象,尽管是空的.那么,考虑到返回null字符串更好?那么收藏也是如此ArrayList吗?

Mar*_*oun 5

有时候你想回来null,有时你却不回来.这真的取决于你的逻辑.

例如,考虑一个空String表示合法返回值的情况.在这种情况下,如果在构造某个对象期间遇到逻辑错误,则不希望返回字符串,因为它在您的情况下是合法的返回值,因此您可能希望返回null以指示某种类型的错误.

例如,考虑到你有这个数组:["Dog1", "Dog2", "Cat", " ", ""]并且你想编写一个搜索数组中String的方法:

private String getDog(String dog) {
   for(String str : animals) {
      if(str.equals(dog)) {
         return dog;
      }
   }
   return null;
   //If you return an empty String instead
   //it's already a valid member in that array...
   //it won't be an indication that the String doesn't exist
}
Run Code Online (Sandbox Code Playgroud)