java存储setter方法的路径,以便以后可以调用它
public class TopLevelObject{
List<SecondLevelObject> secondLevelObjects;
Long field;
}
public class SecondLevelObject{
List<ThirdLevelObject> thirdLevelObjects;
Long field;
}
public class ThirdLevelObject{
Long field1;
Long field2;
}
我们有一个TopLevelObject,它包含一个SecondLevelObject列表,所有这些对象都包含一个ThirdlevelObject列表
我们首先需要通过迭代来初始化这个结构的一些字段,然后推迟初始化其他字段,但要避免再次迭代
那么,是否可以将引用/路径存储到该字段的setter,以便以后调用它们?(假设您知道何时调用哪个setter)
# 1 楼答案
我建议在需要时使用Apache BeanUtils.PropertyUtils根据路径调用setter。以下列出了一些使用方法:
# 2 楼答案
首先,这仅仅是性能问题吗?因为如果是这样的话,等你量好了再来
第二,检查你是否太聪明。了解内部平台效应。你真的需要手工编写这个惰性的初始化代码吗,或者你能使用JPA或其他什么吗
如果您仍然确定,可以使用一个自定义对象来延迟设置,如下所示
这些延迟的setter
Runnable
可以添加到一个集合中,您可以在稍后的初始化过程中循环使用该集合。但我仍然认为,通过简化设计,您可以避免这种方法