java,数组中用==出错

public static void main(String[] args) {
    // 订单的年份月份毫秒值,定义一个数组即可
    int[] arr = {2019,004,1101};
    //调用方法,用一个变量接受结果
    String s = arrayToString(arr);
    //输出结果
    System.out.println("s:" + s);
}
// 定义一个方法实现数组拼接成字符串。参数类型为数组,返回值类型为String
public static String arrayToString(int[] arr) {
    if (arr == null || arr.length == 0) {
        return "";
    }
    StringBuilder sb = new StringBuilder("[");
    for (int i = 0; i < arr.length; i++) {
        if (i != 0) {
            sb.append(",");
        }
        if (arr[i] == null) {
            sb.append("null");
        } else {
            sb.append(arr[i]);
        }
    }
    sb.append("]");
    //在方法中将数组遍历,然后把每一个得到的字符拼接成一个字符串并且返回
    return sb.toString();
}

}

img

你这个不是int类型么,怎么直接跟null比较呢,或者你把他变成string再比较 if (arr[i]+"" == null)

img

int[] arr
这个不能 null
Integer[] arr 才可以

arr[i]是int类型,它不可能等于null

  • 这篇博客: Java中的关键字与保留字中的 (抛出异常) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • throw关键字用于引发异常。

    -示例-

    import java.io.IOException;
    public class MyClass{
    public method readFile(Stringfilename)throws IO Exception{
    代码块;
    if(error){
    throw new IO Exception("errorreadingfile");
    }
    }
    }
    

    -注释-

    throw语句将java.lang.Throwable作为参数。Throwable在调用栈中向上传播,直到被适当的catch块捕获。引发非RuntimeException异常的任何方法还必须在方法声明中使用throws修饰符来声明它引发的异常。





  • 以下回答由chatgpt基于相关博客总结生成:

    答案如下:

    段落0: 符号“==”用于比较两个对象的引用是否相同,而不是比较它们的内容是否相同。

    如果要比较两个数组元素的内容是否相同,应该使用Arrays.equals()方法,在方法调用时传入两个数组作为参数,该方法会比较这两个数组的内容并返回一个布尔值来指示它们是否相等。

    示例代码如下:

    int[] array1 = {1, 2, 3};
    int[] array2 = {1, 2, 3};
    
    if (Arrays.equals(array1, array2)) {
        System.out.println("The arrays are equal.");
    } else {
        System.out.println("The arrays are not equal.");
    }
    

    输出结果应为“The arrays are equal.”。

    希望这能够帮到你解决问题,如果还有其他疑问,请随时追问。