小编Wir*_*s77的帖子

动态2D数组可以实现Java.Collection.size()方法吗?

好的,所以我在Java中创建了一个实现java.util.Collection接口的动态2D数组.我让我的数组实现它,因为我希望它具有与普通相同的功能Collection.但是,我无法实现该size()方法,因为在接口中它返回一个整数,并且2D矩阵可能会溢出整数类型.

这是我正在尝试制作的课程片段:

public abstract class AbstractMatrix<E> implements Collection<E>{
     @Override
     public long size() {
         return columns * rows;
     }
}
Run Code Online (Sandbox Code Playgroud)

现在,这将无法工作,因为"返回类型与Collection<E>.size()" 不兼容",如果我将类型更改为int,则列*行可能会溢出.

我知道我不能覆盖像这样的大小方法,但是有什么方法可以确保方法在仍然实现Collection接口的同时返回正确的大小?

是的,我知道这是不切实际的,可能永远不会成为一个问题,但我很想知道是否有一个很好的解决方案.

java collections int type-conversion long-integer

5
推荐指数
1
解决办法
256
查看次数

电话号码上有ParseInt NumberFormatException

我在尝试解析电话号码时遇到以下错误,"5554567899"

java.lang.NumberFormatException: For input string: "5554567899"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:495)
at java.lang.Integer.parseInt(Integer.java:527)
...
Run Code Online (Sandbox Code Playgroud)

显然,电话号码可以被解析.我甚至引用了这个问题,字节码结果是

53,53,53,52,53,54,55,56,57,57,
Run Code Online (Sandbox Code Playgroud)

所以字符串中没有不可见的字符.我很难过,有人可以帮忙吗?

这是抛出错误的代码部分,供参考:

String fullNumber = null;
        for(Phone phone : party.getPhones()) {
            if(phone != null && !phone.getDialNumber().isEmpty()) {
                if(!phone.getAreaCode().isEmpty()) {
                    fullNumber = phone.getAreaCode();
                }
                fullNumber += phone.getDialNumber();
                if(phone1 == null || phone1.equals(0)) {
                    LOGGER.debug(displayCharValues(fullNumber));
                    phone1 = Integer.parseInt(fullNumber);
                }
         }
Run Code Online (Sandbox Code Playgroud)

phone1Java.lang.Integer类型的.

java string parsing integer

0
推荐指数
1
解决办法
1879
查看次数