有没有办法传递16位整数?如果是这样,怎么办呢?

时间:2014-07-06 18:27:04

标签: java object types constructor largenumber

我需要一个十六位数字的用户类型(没有后缀或引号),然后将该数字传递给一个对象。每当我尝试输入这样的数字时,它被认为是"数据类型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;
        }

2 个答案:

答案 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());