我在查看 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.class
和AnotherDataTypeToUse.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/