---
description: 介绍Parameter, NamedParameter等类的使用
---

# 序言1: 参数类型的使用

## 参数类型

包括的类有: Parameter, ParameterList, ParameterArray, NamedParameter, NamedParameterList。

## 参数列的介绍

在ShadowCore的开发中，我们引入了一个新的类：参数列(ParameterList)，表示参数类型的集合，主要用来判断参数的类型是否匹配目标类型。

例如，有一个方法：

```java
public static void method1(int a, int b, String c)
```

则目标类型的参数列所包含的类型为int, int, String。

### 参数类型的所有类位于该包中

```java
package top.shadowpixel.shadowcore.api.util.parameter;
```

## 类Parameter

Parameter类包含了一个参数的类型和匹配方法（即校验类型匹配的方法），是组成参数列的单位。

#### 创建的方法

```java
// 通过调用以下方法创建实例
// 参数clazz为类型, test为匹配方法
public static <T> Parameter<T> of(Class<T> clazz)
public static <T> Parameter<T> of(Class<T> clazz, Predicate<T> test)
```

## 类ParameterList

ParameterList类是Parameter的一个有序列表，用于**表示参数列**。

#### 创建的方法

```java
// 用Parameter数组创建
public static ParameterList of(Parameter<?>... parameters)
// 用Class数组创建
public static ParameterList of(Class<?>... classes)
```

#### 空白参数列

调用该方法获取。

```java
public static ParameterList emptyList()
```

## 类NamedParameter

顾名思义，这是一个带名称的Parameter，包含参数的类型和名称。

#### 创建的方法

```java
//参数clazz为类型, name为名称, predicate为匹配方法
public static <T> NamedParameter<T> of(Class<T> clazz, String name)
public static <T> NamedParameter<T> of(Class<T> clazz, String name, Predicate<T> predicate)
```

## 类NamedParameterList

NamedParameterList类是NamedParameter的一个有序列表，用于**表示有名参数列。**

#### **创建的方法**

```java
public static NamedParameterList of(NamedParameter<?>... parameters)
```

#### 空白有名参数列

调用该方法获取。

```java
public static NamedParameterList emptyList()
```

## ParameterArray类

这个类不常用，多半用于内部。

包含一个ParameterList或NamedParameterList和一个Object数组，表示参数列和参数

#### 创建的方法

```java
public static ParameterArray of(ParameterList parameterList, Object[] parameters)
```

以上就是参数类型的基本用法。
