我正在编写服务器 - 客户端java程序。在服务器运行java服务器之后,代码应该在command prompt
上运行:
客户端用户
其中client
是将传递给args[0]
的用户的名称。为了处理用户未通过用户名的情况,我想以匿名方式发起名称。但是以下代码不起作用并且一直给出ArrayIndexOutOfBoundException
错误。
if(args == null || args.length == 0)
{
args[0] = "anonymous";
}
有什么建议吗?
答案 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的解决方案。