I have a nonstatic outer class A and I have a nested static class B in this class A. I cannot change the code of this design because it belongs to another team. What I want to do is create an object from class A but I want to set
int toBeSet
from nested static class B with some value. For example, I'd like to set it to 5. How can I do this in spring boot application with bean? My class scheme is the following:
public class OuterClass {
private int toBeSetOuter;
public OuterClass(InnerClass innerClass) {
this.toBeSetOuter = innerClass.toBeSet;
}
public static class InnerClass {
private int a;
private int b;
private int toBeSet;
public InnerClass(int a, int b) {
this.a = a;
this.b = b;
}
public InnerClass nonStaticMethodInStaticClass(int toBeSet) {
this.toBeSet = toBeSet;
return this;
}
}
}
What I want is like the following but with bean (in xml file) in spring boot application.
OuterClass.InnerClass innerClass = new OuterClass.InnerClass(1,2);
innerClass.nonStaticMethodInStaticClass(5);
OuterClass outerClass = new OuterClass(innerClass);
<bean id="idParent" class="OuterClass">
<constructor-arg name="innerClass" ref="id2"></constructor-arg>
</bean>
<bean id="id1" class="OuterClass$InnerClass">
<constructor-arg name="a" value="1"></constructor-arg>
<constructor-arg name="b" value="2"></constructor-arg>
</bean>
<bean id="id2" factory-bean="id1" factory-method="nonStaticMethodInStaticClass">
<constructor-arg name="toBeSet" value="5"></constructor-arg>
</bean>