在Java中,一个方法怎么设置可以传入一个String类型参数或者多个String类型参数或String类型的数组,然后在返回中把接收到的参数转换为数组
时间: 2024-09-28 17:04:06 浏览: 23
String[] list 相互转化
5星 · 资源好评率100%
在Java中,你可以定义一个多态方法,接受一个`String`类型、`List<String>`类型或者是`String[]`类型的参数。根据接收的类型,再进行适当地处理和转换。下面是一个例子:
```java
import java.util.Arrays;
import java.util.List;
public class MyUtil {
public Object processInput(Object input) {
// 检查输入类型并转换为String数组
if (input instanceof String) {
return new String[] { (String) input };
} else if (input instanceof List<?>) { // 接收List<String>
List<String> stringList = (List<String>) input;
return stringList.toArray(new String[stringList.size()]);
} else if (input.getClass().isArray() && input.getClass().getComponentType() == String.class) { // 接收String[]
String[] array = (String[]) input;
return array;
} else {
throw new IllegalArgumentException("Invalid input type");
}
}
// 示例用法
public static void main(String[] args) {
System.out.println(processInput("Hello")); // ["Hello"]
System.out.println(processInput(Arrays.asList("World", "Universe"))); // ["World", "Universe"]
try {
System.out.println(processInput(new String[]{"Java", "Programming"})); // ["Java", "Programming"]
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
}
}
```
在这个例子中,`processInput`方法首先检查输入参数的类型,如果是`String`,就将其封装到一个新的`String`数组中;如果是`List<String>`,则使用`toArray`方法转换;如果是`String[]`,直接返回。如果输入不符合以上任何一种情况,会抛出异常。
阅读全文