我需要一个十六位数字的用户类型(没有后缀或引号),然后将该数字传递给一个对象。每当我尝试输入这样的数字时,它被认为是"数据类型int超出范围"。我不希望用户必须输入XXXXXXXXXXXXXXXXL,因为用户可能不知道java需要long
的L。我也不希望它需要数字周围的引号。有没有办法在java抛出有关数据类型不匹配或超出范围异常的异常之前转换它?
甚至可以这样做吗?我试图构建一个Customer
对象,该对象是Order
对象中的一个字段,该对象本身位于ArrayList<Order> orderList
范围内。 "Sam Totman"
及其旁边的数字是我使用的参数示例。
orderList.get(1).setBuyer(new Customer("Sam Totman", 2112112121121121));
在此构造函数中放置数据类型的位置应该是什么? ccn
是信用卡号;
public class Customer
{
private String name;
private *datatype* ccn;
Customer(String name, *datatype* ccn)
{
this.name = name;
this.ccn = ccn;
}
答案 0 :(得分:0)
使用扫描仪处理输入
Scanner scan = new Scanner(System.in);
long aLong = scan.nextLong(10);
....
orderList.get(1).setBuyer(new Customer("Sam Totman", aLong));
客户
public class Customer
{
private String name;
private long ccn;
Customer(String name, long ccn)
{
this.name = name;
this.ccn = ccn;
}
}
答案 1 :(得分:0)
orderList.get(1).setBuyer(new Customer("Sam Totman", new Scanner(System.in).nextLong());