我正在编写一个模拟简单银行帐户 Activity 的程序,我想知道如何做到这一点,以便如果我创建一个没有任何参数的新帐户,它会收到显示为字符串的随机 7 位标识号。按照我的方式,我只在输出中收到 java.util.Random@2a0364ef 。 期待对此问题的任何帮助和其他评论,因为这是我在此网站上发布的第一个问题。
import java.util.Random;
class Account {
String id;
double stan;
int num;
static int counter;
public Account() {
**id = randomId().toString();**
stan = 0;
num = ++counter;
}
public Account(String id) {
this.id = id;
stan = 0;
num = ++counter;
}
public Account(String id, double mon) {
stan = 0;
this.id = id;
this.stan = mon;
num = ++counter;
}
**static String randomId() {
Random rand = new Random(7);
return String.valueOf(rand);**
}
String getId() {
return id;
}
double getStan() {
return stan;
}
int getNum() {
return num;
}
@Override
public String toString() {
return "Account's id " + getId() + " and balance " + getStan();
}
}
public class Exc7 {
public static void main(String[] args) {
Account account = new Account("0000001"),
acount0 = new Account("0000002", 1000),
acount1 = new Account();
System.out.println(account + "\n" + account0 + "\n" + account1);
}
}
最佳答案
更改return String.valueOf(rand);
至
return String.valueOf(rand.nextInt());
原因:
您正在将随机对象传递给 valueOf
方法,而不是您需要的值。调用 nextInt()
方法来获取所需的随机值。
关于java - 具有随机 int 值的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20729116/