我在类密码中编写代码,生成给定长度的密码。测试驱动程序PasswordTest将不同的长度输入到generatePassword方法中。两个程序都编译但是当我尝试运行PasswordTest.java时,我得到错误:线程中的异常" main"。如何更正此错误并让我的测试驱动程序正常工作?
这是密码类:
/**
* Password.java -- Generates random passwords
* @author Sam Harrison
* @version 21-Sept-2014
*
*/
import java.util.Random;
public class Password
{
public char randomChar(int length)
{
final int NUM_CHARS = 62;
Random rand = new Random();
int num = rand.nextInt(NUM_CHARS);
if (num <= 9)
num += 48;
else if (num <= 35)
num += 55;
else
num += 61;
return (char) num;
}
public String generatePassword(int length)
{
String str1 = "abcdefghijklmnopqrstuvwxyz1234567890";
Password randObj = new Password();
str1 = randObj.generatePassword(length);
return str1;
}
}
以下是测试驱动程序:
/**
* PasswordTest.java
* @author Sam Harrison
* @version 21-Sept-2014
*
*/
public class PasswordTest
{
public static void main (String[] args)
{
int length = 3;
Password randObj = new Password();
randObj.generatePassword(length);
}
}
答案 0 :(得分:0)
您实际上没有生成密码。您需要使用某种积累字符的循环替换generatePassword
的主体。现在,它所做的就是分配一个Password
的新实例并递归到那个实例中,这个实例做同样的事情,直到你耗尽堆栈或堆为止。