Tag: nullpointerexception

使用NullPointerException测试null是不好的风格?

我有以下模式的一些代码: return a().b().c().d().e(); 现在因为这些方法中的每一个都可以返回null ,所以通常会测试这个: if( (a()!=null) && (a().b() != null) && ….) { return a().b().c().d().e(); } else { return null; } (也许可以使用一些局部变量来避免重复调用) 我很想做: try { return a().b().c().d().e(); } catch (NullPointerException e) { return null; } 这被认为是不好的风格? 效率低下? 还是挺好的?

Java ConcurrentHashMap不是线程安全的..是吗?

之前我正在使用HashMap public Map clients = new HashMap(); 现在我已经切换到ConcurrentHashMap以避免同步块,现在我遇到了问题,我的服务器每秒都有大量加载200-400个并发客户端,预计会随着时间的推移而增长。 现在看起来像这样 public ConcurrentHashMap clients = new ConcurrentHashMap(); 我的服务器设计就像这样。 我有一个工作线程来处理大量的数据包。 每个数据包都使用packetHandler子程序(不是线程的一部分)进行检查,几乎任何客户端都可以在任何时候调用它,它几乎就像静态但不是。 我的整个服务器大多是单线程的,除了数据包处理部分。 无论如何,当有人使用命令时,如在线计算所有客户并从中获取一些信息。 客户端也可能会在计数正在进行时断开连接并从ConcurrentHashMap中删除(这会导致我的问题)。 另外我想在这里添加一些代码。 int txtGirls=0; int vidGirls=0; int txtBoys=0; int vidBoys=0; Iterator i = clients.values().iterator(); while (i.hasNext()) { UserProfile person = (UserProfile)i.next(); if(person != null) { if(person.getChatType()) { if(person.getGender().equals(“m”)) vidBoys++; else //<– crash occurs here. vidGirls++; […]

文件结尾NullPointerException

我想要的是通过从命令行键入Ctrl + z并从控制台读取BufferedReader来达到EOF 。 以下代码执行此操作。 但问题是,它在到达EOF后发出NullPointerException 。 有没有办法跳过这个例外? 或者更准确地说,从控制台读取BufferedReader到达EOF的正确方法是什么? import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; class EOF { public static void main(String args[]) { String s = “”; String EOF = “^z”; BufferedReader read = new BufferedReader(new InputStreamReader(System.in)); try { while (!s.equals(EOF)) { s = read.readLine(); } } catch (IOException e) {} } }

添加到ArrayList时出现Java NullPointerException?

我的代码抛出一个NullPointerException,即使该对象似乎正确存在。 public class IrregularPolygon { private ArrayList myPolygon; public void add(Point2D.Double aPoint) { System.out.println(aPoint); // Outputs Point2D.Double[20.0, 10.0] myPolygon.add(aPoint); // NullPointerException gets thrown here } } // Everything below this line is called by main() IrregularPolygon poly = new IrregularPolygon(); Point2D.Double a = new Point2D.Double(20,10); poly.add(a); 为什么会这样?

带有PageFactory的Selenium java.lang.NullPointerException

我试图抓住PageFactory POM,但有些东西不起作用,我无法理解什么是错的。 这是我的第一个主页POM课程: package PageFactory; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; public class Home_Page_POF { public WebDriver driver; @FindBy(css = “div#header-profile a#header-profile-toggle”) public WebElement profileToggleButton; @FindBy(css = “form#loginUserdataForm div.footer div.add-footer a.btn.btn-link.linkicon”) public WebElement newRegistrationButton; public Home_Page_POF(WebDriver driver) { this.driver = driver; PageFactory.initElements(driver, this); } } 这是Reg的第二个POM课程。 页 package PageFactory; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; […]

为什么我在jsp文件上收到NullPointerException?

一旦我点击我的jsp页面上的锚标签,它完全有效,但是在控制台中会抛出以下exception,根据这个答案 ,我从我的依赖项文件夹中删除了jap-api*.jar文件,但应用程序仍然抛出例外。 WARNING: Servlet.service() for servlet jsp threw exception java.lang.NullPointerException at org.apache.jsp.products.ProductShow_jsp._jspx_meth_c_if_1(ProductShow_jsp.java:211) at org.apache.jsp.products.ProductShow_jsp._jspService(ProductShow_jsp.java:119) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:473) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:377) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:875) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:739) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:695) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:626) at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:977) at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:701) at org.apache.tiles.request.jsp.JspRequest.doInclude(JspRequest.java:123) at org.apache.tiles.request.AbstractViewRequest.dispatch(AbstractViewRequest.java:47) at org.apache.tiles.request.render.DispatchRenderer.render(DispatchRenderer.java:45) at org.apache.tiles.request.render.ChainedDelegateRenderer.render(ChainedDelegateRenderer.java:68) at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:259) at org.apache.tiles.TilesContainerWrapper.render(TilesContainerWrapper.java:108) at org.apache.tiles.template.InsertAttributeModel.renderAttribute(InsertAttributeModel.java:188) at […]

SessionFactory始终为null – Spring + Hibernate

我在NullpointerException中的save方法中得到CityDaoImpl 。 似乎sessionFactory没有自动assembly,因为在调试时发现sessionFactory从未在CityDaoImpl注入。 我看了很多答案,但没有一个能解决我的问题。 这是我的HibernateConfig.xml文件: com.testing.bean.City org.hibernate.dialect.MySQLDialect true create true 这是CityDaoImpl.java : public class CityDaoImpl implements CityDao{ @Autowired private SessionFactory sessionFactory; public void setSessionFactory(SessionFactory sessionFactory){ this.sessionFactory = sessionFactory; } public void save(City city){ this.sessionFactory.getCurrentSession().save(city); } } 现在我正在我的dao类上执行unit testing。 但是NPE失败了。 public class TestCityDao { ApplicationContext ctx; @Before public void setup(){ ctx = new ClassPathXmlApplicationContext(“HibernateConfig.xml”); } @Test […]

获取可选对象的字段或返回null

我有可选对象: Optional newestDetail; 我想返回newestDetail.getId()或者如果newestDetail为null则返回null 。 我们有更复杂的方法做到这一点,而不是遵循? return newestDetail.isPresent()?newestDetail.get().getId():null;

Java:构造函数中的NULL

请问这个问题有点理论,但我想理解。 为什么我将null参数传递给构造函数我是否会得到NullPointerException ? 这是我的榜样 new AttendeeDetail(“Gus Goose”,”1151″,”15-01-2012″,(Integer) null,null) 这是class级: public class AttendeeDetail { private String ticketholder_name; private String user_id; private String date_of_birth; private int tickets_purchased; private ArrayList tickets; public AttendeeDetail(String ticketholder_name, String user_id, String date_of_birth, int tickets_purchased, ArrayList tickets) { this.ticketholder_name=ticketholder_name; this.user_id=user_id; this.date_of_birth=date_of_birth; this.tickets_purchased=tickets_purchased; this.tickets=tickets; } }

当我请求行动时,是什么导致了这个NPE?

当我第一次运行程序时,这个错误不存在,然后我尝试了一些实验来获得MVC架构的流程,但现在它向我展示了这个exception。 我想问题是当我通过订阅按钮请求它将转到struts.xml ,它将寻找动作。 问题是在包标签中应该有什么 java.lang.NullPointerException org.apache.struts2.impl.StrutsActionProxy.getErrorMessage(StrutsActionProxy.java:69) com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185) org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63) org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39) com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:501) org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:432) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) java.lang.Thread.run(Thread.java:619) struts.xml : /*This package*/ /Test2/WelcomeHome.jsp