java - 无法将新列表放入方法括号内

标签 java list

塞纳里奥:

所以我试图简化设置大量TextViews的用法通过将大量代码行合并为一行来隐藏,因此决定创建一种获取 List<TextView> 的方法并使它们全部隐形。我做了一个测试类来显示错误。 (问题如下)

方法:

 private void makeTextViewsInvisible(List<TextView> listOfTextViews){
    int i= 0;
    while(i < listOfTextViews.size()){
        listOfTextViews.get(i).setVisibility(View.INVISIBLE);
        i++;
    }
}

使用方法:

makeTextViewsInvisible(new List<t1,t2,t3>()) ;
            //Dose'nt work?
            //I don't want to define : (List<TextView> a  = new ...) And add TextViews manually (a.add(TextView1)...)
            //I want to add all three TextViews in one line of code inside the brackets

问题是,我无法创建 new List在括号内,我需要制作一个全新的 List并添加所有 TextViews 手动(通过使用 List.add(); ),女巫并没有简化我的代码。有什么办法可以在括号内创建一个新的列表吗?

最佳答案

语法

makeTextViewsInvisible(new List())

不正确。 您显然不了解 List 初始化的语法。 如果您想将三个元素插入给定类型的列表(在您的情况下,我相信它将是 List<TextViews> ),您必须初始化它(类型 TextViews 的列表)。请注意,您可能不想实例化 List,因为它是一个接口(interface),您必须实现 List 接口(interface)的每个方法,例如 add(), get(), indexOf()等等我建议您通过ArrayList作为你的函数参数。假设 t1,t2,t3已定义 TextViews 类型的对象。实例化ArrayList<TextViews>您需要以下语法:

ArrayList<TextViews> exampleList= new ArrayList<>(Arrays.asList(t1,t2,t3));

您必须传递一个数组作为列表的构造函数,您可以使用 Arrays.asList() 轻松完成此操作静态方法。话虽如此,方法调用的语法如下所示:

makeTextViewsInvisible(new ArrayList<TextViews>(Arrays.asList(t1,t2,t3));

关于java - 无法将新列表放入方法括号内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49353687/

相关文章:

Python:将列表与范围列表合并

C# 快速排除排序列表的方法

r绑定(bind) data.table 列表的列表

python - 使用切片表示法反转列表

java图像透明度(图像丢失)

java - 编译器如何处理for循环中的size方法

java - Java中的继承(默认构造函数)

java - 如何在 Java Swing 中显示英镑 (£) 符号?

java - 为什么我的计数器在循环中递增,但返回零?

c - <0xC0000005> 插入链表时出错