はList listofinteger
タイプInteger
ですが、文字列オブジェクトを受け入れます。私がチェックするとinstance of Integer
、 true が返されます。あまりにも奇妙です。何が起こっているのか誰でも説明できます。
私が知っているのは、List listofinteger
to メソッドを送信すると、タイプのない List 参照変数への参照が与えられることです。追加すると、入力を String として受け取りList listofanything
ます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 )
には整数型を指定する必要があることはわかっていますが、ジェネリックの概念を理解するためにここでテストしています