[英]How to create a arraylist of type string bean with a factory method return
I have a method in a class that returns a ArrayList, and I want to use this return to create a bean like this: 我在类中有一个返回ArrayList的方法,并且我想使用此返回来创建一个像这样的bean:
<bean id="myList" factory-bean="myClass" factory-method="getMyList" class="java.util.ArrayList">
<constructor-arg index="0" type="java.lang.String">
<util:constant static-field="com.myapp.searchapp.MY_VALUE"/>
</constructor-arg>
</bean>
But when I try to ref this bean from another bean IntelliJ complains that: 但是,当我尝试从另一个bean引用这个bean时,IntelliJ抱怨说:
Bean must be one of these types: java.lang.String or java.util.ArrayList<java.lang.String> less... (Ctrl+F1)
Checks value types for Spring injections (properties & constructor arguments)
What exactly am I doing wrong here? 我到底在做什么错?
..as mentioned in comment, you must ensure the "factory-method" takes no arguments: ..如评论中所述,您必须确保“工厂方法”不包含任何参数:
package foo.bar;
...
public class MyClass {
...
public List<String> getMyList() {
//maybe rather a copy than the original ;)
return daList;
}
...
Given eg a 1-String constuctor: 给定一个1-String构造函数:
...
public MyClass(String one) {
daList = new ArrayList<>();
daList.add(one);
}
...
}
...and a the constant String com.myapp.searchapp.MY_VALUE
you could wire it all like: ...以及一个常量字符串
com.myapp.searchapp.MY_VALUE
您可以将其连接为:
<bean id="myClass" class="foo.bar.MyClass">
<constructor-arg index="0" type="java.lang.String">
<util:constant static-field="com.myapp.searchapp.MY_VALUE" />
</constructor-arg>
</bean>
<!-- and... -->
<bean id="myList" factory-bean="myClass" factory-method="getMyList" />
Here - the top googl-hit on "spring factory method" 在这里 -热门搜索“弹簧工厂方法”
... here - a popular, related & maybe helpful question. ... 这里 -一个受欢迎,相关且可能有用的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.