火大了,都不知道怎么改。。有谁来说说经验么
解决方案 »
- 求助execl表格的分割问题
- 求救大家:菜鸟级问题(GUI)
- 想学习用Java实现收发短信
- String 类型的可以和int 的相加?
- *****100分求LOMBOZ (适合Eclipse3.2的),请看下面
- 为什么我在JBuild9无法随意控制控件的大小?
- ArrayList的问题?
- 请问怎样将一个字符转换成数字?
- 求高手指点!!!!!!!!
- 我在tomcat4。1。24上配连接池连接oracle数据库,不成功,出现Cannot load JDBC driver class 'null'异常,各位知道是什么原因吗?我是照
- 多线程中的interrupt方法的一个问题
- 在vm将要结束的时候执行某段程序。
一堆操作
return true/false;
}如果改成:public boolean hasAdminRole(String username) {
if(StringUtil.isBlank(username)) {
return false;
}
一堆操作
return true/false;
}
public class StringUtil {
public boolean isBlank(String str) {
return (str == null) || (str.trim().length == 0);
}
}这样的话,就不会产生空指针异常。总之凡不是常量值都必须检查参数的有效性和非空性。
昨天又碰上空指针了,原因是JSP跳转的时候用了request.sendRedirect(),而不是request.getRequestDispatcher()导致对象不能传给下个页面,就报了空指针。。
这种东西,感觉除了自己细心,多做判断,经验也十分重要啊,就像我这个例子,即使你找到了空指针,但是不知道是什么原因导致的话,改起来挺麻烦的。
如果不加区分把所有变量都判空,那么就会隐藏错误,导致程序bug
java.lang.NullPointerException
at com.res.vms.handlers.ChangeTreeHandler.prepareDisplay(ChangeTreeHandler.java:78)
at com.res.vms.handlers.ChangeTreeHandler.process(ChangeTreeHandler.java:159)
at com.res.framework.handler.OnlineHandler.handleRequest(Unknown Source)
if(s.equals("010"))
{}
如果那里出现了空指针,我就知道是
request.getParameter("cc");这里没有取到值,也就是说没有这个参数,然后再找上一步,为什么没有带这个参数,是不是写错了?或者是不是少了一个&连接符的.
public format(String str){
if(str==null) return "";
else return str.trim();
}
方法里面的东西可以自己随意界定,小日本的项目都是这么做的
if(str==null) return "";
else return str.trim();
}
即可
一些小的细节 如 "".equals(name) 或者 null == name 这样写也可避免报空指向啊
if(list !=null && list。size != 0)if(list ==null || list。size == 0)
或者实在不放心的话还是在使用之前先判断下是否为null
出错的时候就会最小化的将错误定位到一个小功能
null指针一般都是传递数据时没处理好
没什么方法,仔细找
程序逻辑判断中比如引用进来的参数等加以是否null的判断。。
出现null指针错误的时候,根据错误信息回溯到错误代码中的第几行。。很方便的。。
java的运行时异常通常是告诉程序员:程序不够健壮,需要改进!
几个容易出空指针异常的地方:
1.从各类容器中取数据的时候
2.从诸如session、request中取参数或属性的时候
....等等等等
总之,所有不一定能保证初始化或是有的地方,都要加判断。
如:List list=getList()//用list来接收业务方法的返回值,如果返回值为null的话,
此时用list.size()或者list.get(0)就会报空指针了!
Integer.parseInt(String str)
Long.parseLong(String str)
new BigDecimal(String str)......
在用这些方法前,一定要确定被转换的String对象str有没有是null或""的可能,有的话要处理
②对象强制转换的时候,要考虑对象有没有null的可能
③执行对象的方法的时候,如果对象为null
如:
List list=null;
......--中间一定要有对实例化或进行引用的代码
int size=list.size();--如果list=null,肯定会抛空指针异常又:
obj.equals("YES"),一定要确定obj不为null,否则抛空指针异常
可以这样写 :"YES".equals(obj),这样是调用对象"YES"的equals方法
暂时想到这么多
返回值不要设为 void 类型!
常见 更正一下,呵呵!
还一个就是我看了楼主都是jsp页面的,你要注意数据传参,如你用page存数据到其他页面去取的话那肯定会出现空指针,这些提示希望对楼主你有用
getParameter的命名问题.
使用对象前注意先看new了没.
细心细心...
对象为空的话我先Syso看看
遇到问题后查看堆栈信心就知道是哪里出错了啊.. 再认真仔细的分析下该是很容易搞定!!!!
是的话,不会你执行.XX方法,都会报空指针,而且这种和往方法传参传null
是经常由于疏忽导致的最多的。
我感觉比用C的指针幸福多了.