java - 将参数设置为持久值

标签 java null static-methods

我已经阅读了一些内容,我明白在java中你不能改变给定参数的原始值并期望这些参数在方法结束后仍然存在。但我真的很想知道一个好方法来做到这一点。有人可以给我一些指导,告诉我我可以做些什么来使这个方法发挥作用吗?谢谢。

/**
* This will set values in the given array to be "" (or empty strings) if they are null values
*
* @param checkNull
*/
public static void setNullValuesBlank(String... checkNull) {
  for (int i = 0; i < checkNull.length; i++) {
    String check = checkNull[i];
    if (check == null) {
      check = "";
    }
  }
}

编辑

所以我必须像几个人提到的那样将它设置为数组,如果我首先构造数组,它会很好用,但如果我不这样做,它就不起作用。

这是固定方法:

/**
  * This will set values in the given array to be "" (or empty strings) if they are null values
  *
  * @param checkNull
  */
public static void setNullValuesBlank(String... checkNull) {
  for (int i = 0; i < checkNull.length; i++) {
    if (checkNull[i] == null) {
      checkNull[i] = "";
    }
  }
}

这是一个有效的调用:

String s = null;
String a = null;
String[] arry = new String[]{s, a};
for (int i = 0; i < arry.length; i++) {
  System.out.println(i + ": " + arry[i]);
}
setNullValuesBlank(arry);
for (int i = 0; i < arry.length; i++) {
  System.out.println(i + ": " + arry[i]);
}

这是一个不起作用的调用,但我希望它起作用:

String q = null;
String x = null;
System.out.println("q: " + q);
System.out.println("x: " + x);
setNullValuesBlank(q, x);
System.out.println("q: " + q);
System.out.println("x: " + x);

输出:

q: null
x: null
q: null
x: null

最佳答案

您需要分配给数组:

if (checkNull[i] == null) {
  checkNull[i] = "";
}

分配给检查不会改变数组。

关于java - 将参数设置为持久值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10009019/

相关文章:

java - 为什么在搜索多个元素时无法在 Selenium 中按 id 找到一个元素

objective-c - 如何通过 NSJSONSerialization 在 JSON 中包含 null 值?

java - 避免复杂 if else 分支的最佳方法 - Java

MySQL 无法选择特定字段值?

java - 为什么 Java 8 中托管 main 的接口(interface)不必是公共(public)的?

java - 访问者模式可以用于执行通用双重调度吗?

java - Rest Easy 多部分表单数据获取多个文件的文件长度

具有异步方法调用的 Java 服务

java - java中静态方法不能通过引用变量访问

C++11 如何在其他类或源文件中引用类方法