如何创建一个动态返回 ArrayList 的方法?
Posted
技术标签:
【中文标题】如何创建一个动态返回 ArrayList 的方法?【英文标题】:How to create a method that dynamically returns an ArrayList? 【发布时间】:2022-01-05 23:47:25 【问题描述】:我想创建一个可以完成所有这 4 种方法的工作的方法。该方法必须返回一个ArrayList
,其输入参数为int a
、String str
、char c
和boolean b
。
该方法必须返回一个数组列表,其中包含元素 int (ax2)
、String ("new" + str)
、char (ascii(c) + 1)
(下一个 ascii 字符)
而不是boolean b
。
我尝试从类似的堆栈溢出帖子中寻求帮助,但出现“非静态”错误
public class Program
public static void main(String[] args)
System.out.println(intoTwo(3));
System.out.println(newString("Hello"));
System.out.println(nextChar('c'));
System.out.println(notFunc(true));
public static int intoTwo(int a)
return a * 2;
public static String newString(String str)
return "new " + str;
public static char nextChar(char c)
int ascii = c;
return (char)(ascii + 1);
public static boolean notFunc(boolean b)
return (!b);
程序及其输出的图像:
【问题讨论】:
【参考方案1】:你可以使用List<Object>
,因为Object
是java中所有对象的***类,它可以包含任何类型,
如果您采用 4 个不同的参数,那么您可以这样做
private static List<Object> newmethod(int i,char c,Boolean b,String s)
return Arrays.asList(i*2,"new"+s....);
如果您还需要输入作为列表,那么您可以使用instanceof
运算符来检查特定对象是否属于/可分配给某种类型,
所以你需要做的就是检查 Object 是否是 String 并为 string 类型做逻辑,对所有其他类型都是一样的。
private static List<Object> newmethod(List<Object> input)
List<Object> result = new ArrayList<>();
for(Object item: input)
if(item instanceof String)
result.add("new"+item.toString);
if(item instanceof Integer)
result.add(2*(int)item);
//other types Boolean and Character logic;
return result;
【讨论】:
以上是关于如何创建一个动态返回 ArrayList 的方法?的主要内容,如果未能解决你的问题,请参考以下文章
创建包含方法的 Web 服务时出错返回 ArrayList 类型