为什么List<Boolean>可以在变量中存储其他对象(Mybatis)

Why List<Boolean> can store other object in variable (Mybatis)

这段代码是我写的。

List<Boolean> result = testNtxMapper.selectTestObjects(testObject);

@Repository public interface TestNtxMapper { 
  ArrayList<Boolean> selectTestObjects(TestObject testObject); 
}

public class TestObject {

    private Integer blogEntryId = 0;
    private Integer entryState;
    private Integer entryCategory;
    private Integer userId;
    private String entryTitle;
    private String entryBody;
    private String entryDate;
    private Date createdAt;
    private Date updatedAt;

}

应该会出错,因为 resultType 是 testObject。

<select id="selectTestObjects" resultType="testObject" parameterType="testObject">

但是没有错误,return正常。

result = {ArrayList@8362}  size = 1
0 = {TestObject@8389} "{"TestObject":{"sort":"null", "page":"null", "size":"null", "q":"null", "qMap":{}, "blogEntryId":"120", "entryState":"5", "entryCategory":"5", "userId":"5", "entryTitle":"llllll2", "entryBody":"vvvvvv", "entryDate":"20170315", "createdAt":Mon Apr 10 13:56:36 ICT 2017, "updatedAt":null}}"

谁能解释一下?

非常感谢。

泛型只是编译时的。无论声明什么,它都是内部铸造的。举例说明它是如何发生的。

import java.util.ArrayList;
import java.util.List;

public class GenericTest {

    public static void main(String[] args) {
        List<Boolean> booleanList;

        List<Integer> intList = new ArrayList<>();
        intList.add(42);

        List objects = intList;
        booleanList = objects;
        System.out.println(booleanList);
    }
}