передача класса для создания нового объекта в методе - PullRequest
0 голосов
/ 17 октября 2018

Я новичок в программировании и не знаю, возможно ли передать класс методу.

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

Однако моя проблема в том, что я не могу создать новый массив, не сообщив методу, какие объекты должны храниться в этом массиве.,

Я хочу использовать его как метод, поскольку я намерен повторно использовать метод для нескольких типов объектов.

public class MusicCollection {
    private Cassette[] cassetteArray = new Cassette[10];

     public Cassette[] getCassetteArray() {
        return cassetteArray;
        }
    }

Предполагая, что я успешно сохраняю объекты в массиве, я хочу.

    fm.writeFile(outputFileName, mc.getCassetteArray(), Cassette,
            "\n",",");

Для этой функции, чтобы я мог создать там дубликат массива.

   public void writeFile (String fileName, Object inputArray, Class Class,
                           String newLineDelimiter, String commaSeperator){

        Class[] c = mc.getCassetteArray();

Также просто подумал, что я бы сказал, что у меня есть класс кассеты для создания объектов кассетыа затем хранить их в MusicCollection.

mc является объектом MusicCollection и доступен в области видимости.

[ПРАВИТЬ] Я сожалею о путанице здесь.Я больше не могу показывать код, так как не понял, как начать.

То, что собирается сделать метод writeFile, - это получить массив объектов.В этом случае я хочу передать это массив кассет.Затем я хочу, чтобы с этим массивом кассет проходил каждый объект по отдельности, а затем записывал это в CSV.

У меня есть метод доступа в методе Cassette, который помещает все значения в массив, в котором я могу затем использовать FileWriter для перебора и записи.Однако, если я просто импортирую массив, я по какой-то причине не могу вызвать метод доступа из объекта Cassette.

Возможно, добавление класса не является обязательным, и после долгих раздумий я не думаю, что это так.Однако я не могу вызвать методы из «inputArray» в приведенном выше коде.

1 Ответ

0 голосов
/ 17 октября 2018

Я новичок в программировании, и я не знаю, возможно ли передать класс методу.

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

 public void <T> T[] createNewArrayOfClass(Class<T> clazz, int length){
    return (T[]) java.lang.reflect.Array.newInstance(clazz, length);
}

Надеюсь, это поможет.

...