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

最佳答案

orderList.get(1).setBuyer(new Customer("Sam Totman", new Scanner(System.in).nextLong());

07-24 21:41