我正在尝试使用Android Annotations实现以下Spring代码:
@Autowired
public initHandlerList(List<Handler> handlerList) {
// Do stuff with the list ...
}
我尝试使用接口和类。
Bean定义:
@EBean
public AbstractHandler implements Handler {}
尝试注射:
@Bean
public initHandlersList(List<AbstractHandler> handlersList) {
// Do stuff with the list ...
}
但总是遇到以下错误:
Error:(20, 5) error: org.androidannotations.annotations.Bean can only be used on an element annotated with @org.androidannotations.annotations.EBean
所以我想因为列表本身没有用@EBean
注释,所以它不能用作Bean ...使用Android Annotations实现这个的任何方法吗?
谢谢!
答案 0 :(得分:2)
抱歉,我无法发表评论,但声誉太低。
我读了wiki并且在基于方法的注入下我看到了如何注入bean。我在你的代码中看到的是你确实在创建一个带有AbstractHandler对象的EBean,但是你试图注入一个没有用@EBean注释的List对象,你可以删除List&lt;&gt;并且只需使用AbstractHandler,或者您可以扩展List实现(如ArrayList)并使用@EBean注释它。
var data = {
prop1: "I am prop 1",
prop2: "I am prop 2"
};
function clickHandler () {
var prop = this.getAttribute("data-property");
console.log(data[prop]); // <-- Dynamically access object properties with [] syntax
}
var buttons = document.querySelectorAll("[data-property]");
for (var i = 0; i < buttons.length; i++) {
var button = buttons[i];
button.addEventListener("click", clickHandler);
}
希望这会有所帮助。