Arg [0]声明为默认值

时间:2014-12-16 15:30:29

标签: java sockets serversocket

我正在编写服务器 - 客户端java程序。在服务器运行java服务器之后,代码应该在command prompt上运行:

客户端用户

其中client是将传递给args[0]的用户的名称。为了处理用户未通过用户名的情况,我想以匿名方式发起名称。但是以下代码不起作用并且一直给出ArrayIndexOutOfBoundException错误。

    if(args == null || args.length == 0)
    {
        args[0] = "anonymous";
    }

有什么建议吗?

3 个答案:

答案 0 :(得分:3)

您正在尝试更改保证为null或为空的数组元素。

避免这种情况的一种方法是使用单独的变量:

String name = "anonymous";
if (args != null && args.length > 0) {
    name = args[0];
}
// use name

答案 1 :(得分:0)

您无法为null分配值,也无法为长度为0的数组赋值。因此,args[0] = "anonymous"如果{ArrayOutOfBounds将抛出args.length == 0异常1}}

答案 2 :(得分:0)

您需要重新初始化它。

if(args != null && args.length > 0) {
    args = new String[]{"anonymous"};
}

注意:虽然它解决了这个问题,但我会使用@ NPE的解决方案。