gpt4 book ai didi

java - 如何在android中制作自定义Arrays.asList

转载 作者:行者123 更新时间:2023-12-02 02:01:21 25 4
gpt4 key购买 nike

我有一个 Android 中可扩展 View 的代码,它将有限的数据加载到适配器中。我想自定义数据,但我被 Arrays.asList() 语法所困扰。

这是现在加载数据的代码:

    public static List<Genre> makeGenres()
{
return Arrays.asList(makeRockGenre(),
makeJazzGenre(),
makeClassicGenre(),
makeSalsaGenre(),
makeBluegrassGenre());
}


public static Genre makeRockGenre()
{
return new Genre("Rock", makeRockArtists(), R.drawable.ic_music_note_black_24dp);
}

public static List<Artist> makeRockArtists()
{
Artist queen = new Artist("Queen", true);
Artist styx = new Artist("Styx", false);
Artist reoSpeedwagon = new Artist("REO Speedwagon", false);
Artist boston = new Artist("Boston", true);

return Arrays.asList(queen, styx, reoSpeedwagon, boston);
}

注意:-此处已跳过其余类似方法。

如您所见,ma​​keGenres() 返回一个通过 Arrays.asList() 创建的列表。这里 ArraysasList 调用了五个方法,每个方法都返回一个数组。我想要做的是不调用这五个方法,而是使用 'n' 个数组创建 Arrays.asList() 。

我需要这样的东西:

public static List<Genre> makeGenres()
{
return MakeArrayAsList();
}

public static List<Genre> MakeArrayAsList()
{

for(int i=0;i<20;i++)
{

//add 20 array items like this
newGenre("Rock",makeRockArtists(),R.drawable.ic_music_note_black_24dp);
}

//make Array.asList() using those 20 items to return
// return Arrays.asList

}

基本上,就好像我可以在 Arrays.asList 中调用 makeRockGenre() 'n' 次,而不是原始代码中的五个方法。

最佳答案

您想使用动态数量的参数调用Arrays.asList吗?

Arrays.asList 是可变参数,因此我们可以向其中传递一个数组:

public static List<Genre> MakeArrayAsList() {
Genre[] genres = new Genre[20];
for(int i=0;i<20;i++) {
//add 20 array items like this
genres[i] = newGenre("Rock",makeRockArtists(),R.drawable.ic_music_note_black_24dp);
}
//make Array.asList() using those 20 items to return
// return Arrays.asList
return Arrays.asList(genres);
}

但您可能实际上不想使用Arrays.asList
你真正想要什么?

关于java - 如何在android中制作自定义Arrays.asList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51528943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com