为什么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);
}
}
这段代码是我写的。
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);
}
}