我可以喜欢
private SharableClass object1;
private SharableClass object2;
public ClassA(SharableClass object1, SharableClass object2){
this.object1=object1;
this.object2=object2;
}
然后填充object1和object2并共享它。有可能吗?
答案 0 :(得分:0)
如果通过共享表示要访问代码中任何位置的object1和object2的值,则这些变量应该是静态的,如果您的意思是一旦在代码中初始化了ClassA并且想要访问object1和object2,则变量应该是公共的。
这就是分享吗?
说明:
然后,成员object1和object2必须是静态的,但是如果要保持私有,则应在抽象类中声明这些变量,并且ClassA和ClassB继承该类。
public abstract class ClassAB{
protected SharableClass object1;
protected SharableClass object2;
}
public class ClassA extends ClassAB{
//Change object1 and object2 (changes are applied in all ClassAB)
}
public class ClassB extends ClassAB{
//Change object1 and object2 (changes are applied in all ClassAB)
}
答案 1 :(得分:0)
如果您在classA和classB中都声明了私有object1和object2,则将这些变量初始化为同时具有classA和classB依赖关系的类,可能是picoContainer。然后,您可以在classA中填充对象数据,并在classB中使用该数据。如下所示:
<string name="registration_success">You have been successfully registered
and your number is: \n\n%1$s</string>
}
答案 2 :(得分:0)
Pico支持集合/数组注入,您可以在容器内具有多个相同类型的实例,然后像注入
public ClassA(List<SharableClass> objects){
this.objects = objects;
}
public ClassB(List<SharableClass> objects){
this.objects = objects;
}
然后,您可以轻松地对集合中的那些共享对象进行任何操作
答案 3 :(得分:0)
这就是我的方法。
xDTO{
String xName;
void setxName(String name){ xName = name;}
String getxName(){ return xName;}
public xDTO(){
}
publicxDTO(String name){
this.xName=name;
}
由于共享状态XDTO的默认构造函数超过了默认构造函数, pico容器无法以通常的方式创建构造函数。 所以我不得不创建一个“包装类” xDTOShare { ArrayList xDTO;
public void addToxDTO(XDTO dto){
xDTO xdto1 = new xDTO();
xdto1.setxName(dto.name);
xDTOs.add(xdto1);
}
classA{
private ArrayList<xDTO> dtos;
public classA(ArrayList<xDTO> dtos){
this.dtos = dtos;
dtos.set(new XDTO("test"));
}
classB{
private ArrayList<xDTO> dtos;
public classB(ArrayList<xDTO> dtos){
this.dtos = dtos;
System.out.println(dtos.getXName);
}
输出将为-测试