Может ли динамический двумерный массив реализовать метод Java.Collection.size()?

Итак, я создаю динамический 2D-массив на Java, который реализует интерфейс java.util.Collection. Я реализовал это в своем массиве, потому что хотел, чтобы он имел ту же функциональность, что и обычный Collection. Однако я не могу реализовать метод size(), потому что в интерфейсе он возвращает целое число, а 2D-матрица потенциально может переполнить целочисленный тип.

Вот фрагмент моего класса, который я пытаюсь создать:

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

Теперь это не сработает, потому что «Тип возвращаемого значения несовместим с Collection.size()», и если я изменю тип на int, столбцы * строки могут переполниться.

Я знаю, что не могу переопределить метод size таким образом, но могу ли я каким-либо образом убедиться, что метод возвращает правильный размер, при этом реализуя интерфейс Collection?

Да, я знаю, что это нецелесообразно и, скорее всего, никогда не будет проблемой, но мне было интересно узнать, есть ли для этого хорошее решение.

5
задан Wires77 18 June 2012 в 18:06
поделиться