我真的无法解释这个。
我有一个像这样设置的Java List<Byte> myList;
:
class AJavaClass {
// ...
private List<Byte> myList;
public AJavaClass(List<Byte> myList) { this.myList = myList; }
// ...
}
AJavaClass aJavaClass = new AJavaClass(customMongoRepository.customFind());
customMongoRepository
对象是通过Spring注入的。它的定义如下:
public interface CustomMongoRepository extends MongoRepository<AComplexClass, String> {
List<Byte> customFind();
}
但是,在执行期间查看aJavaClass
时,myList
实际上是List<AComplexClass>
类型。
现在,我理解的是customFind
中执行的查询不会产生List<Byte>
,而是产生List<AComplexClass>
。我不明白的是,这不会引发异常,以及变量如何包含不同类型的值。