我得到了一个数组列表和一个将对象添加到数组列表的方法。目前我使用重载方法来区分不同类型的对象。有没有办法使用 undefined object 作为方法的参数并在方法内部区分它是什么类型的对象?
最佳答案
通过“ undefined object 作为参数”,我假设您的意思是您正在寻找编写一个不在函数声明中指定对象类型的函数,从而允许您只有一个函数。
这可以通过泛型来完成。
而不是:
static void func(String str)
{
System.out.println("The string is: "+str);
}
static void func(Integer integer)
{
System.out.println("The integer is: "+integer);
}
你可以拥有:
static <T> void func(T value)
{
if (value instanceof Integer)
System.out.println("The integer is: "+value);
else if (value instanceof String)
System.out.println("The string is: "+value);
else
System.out.println("Type not supported!! - "+value.getClass());
}
测试:
func("abc"); // The string is: abc
func(3); // The integer is: 3
func(3.0); // Type not supported!! - class java.lang.Double
参见Java generics了解更多信息。
关于Java undefined object ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19592722/