为什么对象为null虽然我从我的测试代码中调用了setter

时间:2015-10-26 09:34:47

标签: java object nullpointerexception setter getter

我的测试方法中有以下代码

VirtualServer virtualServer = new VirtualServer();
virtualServer.initializeServlet();
virtualServer.setServeletObserver(new ANFlipNotAllowedFlagObserver());
.....
.....

以上2行表示为....触发dev代码,以便它命中我的虚拟服务器。

虚拟服务器类的代码如下: -

 public class VirtualServer extends HttpServlet
 {
    private volatile Observer observer;

    public synchronized Observer getServeletObserver ()
    {
       return observer;
    }

    public synchronized void setServeletObserver (Observer observer)
    {
        this.observer = observer;
    }

    protected void doPost (HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException
    {
        this.getServeletObserver().subject.setRequestResponse(request, response);
    }

当我在调用setServeletObserver之后立即设置断点并检查virtualserver.getServeletObserver的值时,我会看到我使用我的设置设置的值。如果我在dopost方法中的virtualServer类中设置断点(在从testcode调用设置之后),我将observer对象的值视为null。我不确定为什么它为null。我的testclass已经在这个类上调用了setter方法。所以它不应该是空的。你能不能帮我找出什么是错的。我为Observer对象使用了volatile关键字。但它没有帮助。

0 个答案:

没有答案