Как вызвать метод 3-го класса, вызвав метод 2-го класса из 1-го класса - PullRequest
0 голосов
/ 10 июня 2019

У меня есть один класс с именем Artist из этого класса. Я могу вызвать открытый метод getArtists класса 'Track', который в возвращаемом значении дает мне массив другого класса ArtistSimplified. Меня интересует метод getName, который возвращает строку класса ArtistSimplified. Я хочу знать, как это сделать. Я не могу напрямую вызвать метод getName класса ArtistSimplified.

        List<Track> tracks = new ArrayList<>();
        tracks = Arrays.asList(topTracksRequest.execute());
        if(tracks == null) {
            throw new ResourceNotFoundException(new ErrorMessage("No songs found for this id:" +artistId));
        }

        List<Song> songs = new ArrayList<Song>();
        for(int i = 0; i < 5; i++) {
            Song song = new Song();
            song.setTitle(tracks.get(i).getName());
            song.setArtist(tracks.get(i).getArtists().getClass().getMethod("getName", ArtistSimplified.class).getReturnType());
        }

Я застрял здесь. song.setArtist (track.get (i) .getArtists (). getClass (). getMethod ("getName", ArtistSimplified.class) .getReturnType ());

Я пробовал приведенную выше строку, но она не работает.

1 Ответ

0 голосов
/ 10 июня 2019

Ваш код пытается вызвать getName() для самого массива. Вам нужно сообщить индекс, по которому Artist вы собираетесь получить имя.

for (int a = 0; a < tracks.get(i).getArtists().length; a++) { 
        System.out.print(tracks.get(i).getArtists()[a].getName()); 
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...