![](/img/trans.png)
[英]Can't make static reference to non-static method ( Android getApplicationContext() )
[英]Spring can't make static reference to non-static method?
这是我的PageController代码。
@RequestMapping(value = { "/show/category/{id}/products" })
public ModelAndView showCategoryProducts(@PathVariable("id") int id) {
// Category DAO //Getting Error Here
Category category = null;//Please Explain this line also.
category = CategoryDAO.get(id);// Getting Error in this line
ModelAndView mv = new ModelAndView("page");
mv.addObject("title", "All Products");
// Passing list of categories
mv.addObject("categories", categoryDAO.list());
mv.addObject("userClickCategoryProducts", true);
return mv;
}
CategoreDAO类中的代码
public interface CategoryDAO {
List<Category> list();
Category get(int id);
}
实现CategoryDAO的另一个类
Repository("CategoryDAO")
public class CategoryDAOImpl implements CategoryDAO {
private static List<Category> categories = new ArrayList<>();
static {@Override
public Category get(int id) {
for(Category category:categories) {
if(category.getId()==id)
return category;
}
return null;
}
我收到一个错误,指出静态引用不能成为非静态方法。
请查看第一个代码段。 您会明白问题所在
是的,绝对如此。
静态对象和非静态对象的工作方式不同。 对于非静态方法,必须在使用之前实例化。 这就是为什么在静态方法中使用非静态方法无效的原因。
还有一件事,将在构造函数之前调用静态块。 因此,请仔细检查您的业务逻辑。 我不太明白为什么要覆盖静态块中的其他功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.