是List listofinteger
类型Integer
,但接受字符串对象,当我检查时instance of Integer
,它给出的是真的,太奇怪了,谁能解释发生了什么。
我所知道的是,当我发送List listofinteger
to 方法时,它会引用无类型的 List 引用变量,当我添加它时,它会将输入作为字符串,现在当我返回List listofanything
to时List of Integer type
,它应该接受,因为它是一个引用。
现在,但我检查instanceof
,它正在打印true
,Integer
但它的String
。
import java.util.ArrayList;
import java.util.List;
public class TestEx {
List<Integer> listofinteger=new ArrayList<Integer>(); //list of integer type
public static void main(String... args)
{
TestEx f=new TestEx();
f.listofinteger.add(123); //adds integer by wrapping it(auto)
f.listofinteger=f.addelement(f.listofinteger);
if(f.listofinteger.get(1) instanceof Integer);
{
System.out.println("true"); //prints true here
System.out.println(f.listofinteger.get(1));
}
}
List<Integer> addelement(List listofanything)
{
listofanything.add("asdasdasd"); //adding String object
return listofanything;
}
}
我知道addelement(List listofanything )
这里的方法应该被赋予一个 Integer 类型,但我在这里测试它,以了解泛型的概念