java - List < Class < 是什么意思?扩展数据类型>>?

标签 java

我在查看 Oracle 权利服务器 API 时遇到了以下语句,该语句需要上述参数类型。

FunctionEntry functionEntry = ...;
functionEntry.setParameterTypes(List<Class<? extends DataType>>);

我很难理解它的要求。我只理解“?扩展数据类型”。我需要将什么类型的参数传递给 setParameterTypes 方法?

最佳答案

它要求提供特定 Class 的列表对象。在本例中,列表为 Class代表从 DataType 扩展的类的对象类(class)。当您从此类扩展时,例如:

public class MySpecialDataType extends DataType
{
}

public class AnotherDataTypeToUse extends DataType
{
}

您可以使用表达式 MySpecialDataType.classAnotherDataTypeToUse.class (称为“类文字”)来获取可以分配给 Class<? extends DataType> 的对象变量。

Class<MySpecialDataType> clazzOne = MySpecialDataType.class;
Class<AnotherDataTypeToUse> clazzTwo = AnotherDataTypeToUse.class;
Class<? extends DataType> baseClazz = clazzOne; // works
baseClazz = clazzTwo; // also works
List<Class<? extends DataType>> clazzes = new ArrayList<Class<? extends DataType>>();
clazzes.add(clazzOne);
clazzes.add(clazzTwo);

functionEntry.setParameterTypes(clazzes);

您可能想查看 Arrays.asList() 对于 setParameterTypes() 的参数.

关于java - List < Class < 是什么意思?扩展数据类型>>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46610115/

相关文章:

java - Spring安全@PreAuthorize NullPointerException。为什么?

java - Java中有没有一种方法可以在一行中创建一个范围内的数组?

java - JTable单列选择

java - 是否可以仅将 String 传递给自定义 ListView 适配器?

java - 创建自定义 JPA 时间注释

java - HashMap 优化的影响,将与每个条目关联的哈希代码缓存到其 get 方法

java - 将字符串数组转换为 int 数组,然后将 int 转换为 *

java - JDOM - SaxBuilder - 序言中不允许有内容

java - 在哪里放置 DTD 和模式文件

java - 一次性解析jar和dll