Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个Java语法是什么意思?(`Class<;?扩展E>;clazz`)_Java - Fatal编程技术网

这个Java语法是什么意思?(`Class<;?扩展E>;clazz`)

这个Java语法是什么意思?(`Class<;?扩展E>;clazz`),java,Java,我需要一个自定义方法来检查包含类实例的列表并调用此方法,但我不理解此语法“class clazz”,也不理解此方法的第二个参数是什么 public static <E> boolean containsInstanceOfOidInrArraylist(List<E> Arraylist, Class<? extends E> clazz) { for (E e : Arraylist) { if (clazz.isIn

我需要一个自定义方法来检查包含类实例的列表并调用此方法,但我不理解此语法“class clazz”,也不理解此方法的第二个参数是什么

public static <E> boolean containsInstanceOfOidInrArraylist(List<E> Arraylist, Class<? extends E> clazz) {
        for (E e : Arraylist) {
            if (clazz.isInstance(e)) {
                return true;
            }
        }
        return false;
    }

public static boolean containsinstanceofoidinraylist(List-Arraylist,ClassOk,因此函数的第一个参数是名为
Arraylist
List
(在Java中不应将变量大写,应将其命名为
Arraylist

第二个参数是

Class
是一个可参数化的类,因此可以使用语法
Class
其中
T
是一个类型。通过编写
Class
,您声明了一个
对象,可以是任何类型(
是通配符)。类
类型是包含类的元信息的类型

现在你知道了
Class
的意思,但是
Class的意思呢参见本教程:

“上界通配符
您可以使用上限通配符来放宽对变量的限制。例如,假设您想编写一个在
List
List
List
上工作的方法;您可以使用上限通配符来实现这一点

要声明上界通配符,请使用通配符(“?”),后跟extends关键字,再后跟其上界。请注意,在此上下文中,extends通常表示“extends”(在类中)或“implements”(在接口中)


第二个参数是一个与列表中的对象类相同的类,或对其进行扩展。clazz用作变量名,因为类是保留关键字,不能使用。

我建议您从学习
泛型开始。
。这里可能是一个很好的开始复制的地方。这有一个很好的解释阅读DB推荐的教程后,
Class
是一个类的名称(它是
java.lang.Class
),而
clazz
是一个变量名…之所以选择它,是因为您不能使用
class
作为变量名。此外,
List
ClassHi的组合,请向我们提供您的代码和问题。现在我们不知道链接教程有什么问题。