如果我告诉你,你平时代码中命名不规范可以会导致你项目程序运行出错,你注意还是不注意?
这次博主就因为类的属性命名不规范,导致程序出现了问题。
这是博主的踩坑笔记专栏,希望遇到的问题可以积少成多,纪录的问题越多,能解决的问题也就越多,也希望我遇到的问题可以帮助到在看这篇文章的读者朋友们。
问题背景
在写一个管理系统时,通过Servlet在后台访问数据库,将读取到的数据存储实例化为一个实体类,并存储在一个存储该实体类的列表中,然后将列表保存在session会话中。在前端网页视图的渲染中通过<c:forEach>来遍历session中的列表,打印出一个表格。
具体代码如下:
<c:forEach var="b" items="${list}" varStatus="status">
<tr>
<td>${b.id}</td>
<td>${b.activityname}</td>
<td>${b.promotion}</td>
<td>${b.activitycost}</td>
<td>${b.Pnum}</td>
<td>${b.Avercost}</td>
<td><button onclick="doJoin(this)" class="btn btn-info" name="" value="${status.count}">申请参加</button></td>
</tr>
</c:forEach>
启动后运行却出了问题:
这里提示jsp文件第71行找不到Pnum属性,这让我百思不得其解。
我转去查看我的Activity类的属性,没有问题,
查看set和get方法。
查看构造方法。
这些方法都是IDEA自动帮我们生成的。细心的读者们发现了没有。最后两个属性Pnum和Avercost在所以方法里面都没有使用this关键字!我试着手动加上,加完测试,依然提示没有这个属性。
这是博主第一次因为命名不规范而出现错误,实在是让我大吃一惊,IDEA中的许多jar包为我们的开发提供了很多便利,但同时也要求我们有一个良好规范的编码风格,博主此前也遇到过在类中没写get和set方法导致程序运行出错的事故。
解决方法
把Activity中的Pnum属性和Avercost属性的首字母改成小写的,然后重新生成相应的get和set方法,以及构造方法。
重新运行程序,已经没有错误了。
总结
在学习计算机之前,老师就教导我们对于变量和类的命名都是有一定规则的,比如说顾名思义,单词大小写。一块整洁清晰的代码不仅可以让你的思路清晰,更可以让别人眼前一亮。
关于一些编程的基本规范,我看到一篇不错的文章,在这里分享给大家。Java的代码风格
最后希望大家都可以养成良好的编码习惯。
千里崎岖不辞苦,
仗剑江湖为红颜