我使用RandomStringUtils.random
生成一个随机密码。在应用程序运行时生成密码似乎有一种奇怪的行为,它始终使用以下结构创建密码:[C@1c3f05e5, [C@2b15e4de, [C@18c628b6
。它总是重复三个第一个字符。我生成密码的代码是:
char[] password = RandomStringUtils.random(10, 0, 0, true, true, null,
new SecureRandom()).toCharArray();
如果我用main
方法执行此代码,它似乎运行良好。
答案 0 :(得分:2)
您打印对象引用([C@1c3f05e5, [C@2b15e4de, [C@18c628b6
)而不是对象的内容。
答案 1 :(得分:2)
您应该使用Arrays.toString(char[] a)
包裹char[] password
数组,以查看所需的结果。
编辑(评论):
它不打印对象引用,只是从Object
调用toString()
,因为缺少它自己的覆盖。
System.out.print[ln]
从已传递的实例调用toString
,因此以下几行相同:
System.out.print(password);
System.out.print(password.toString());
但是,正如我已经说过的那样,这并没有给出任何有用的输出。你应该使用
System.out.print(Arrays.toString(password));
使用数组,但不会覆盖此方法。