//2、解析客户资料到客户对象
Customer customer = customerService.fillCustomer(props);
//3、直接将客户对象保存到Excel中(暂时先不做批量入库了)
boolean isSuccess = customerService.saveToExcel(Application.cstList,“D:/customer.xls”);
Application.cstList.add(customer);
return isSuccess;
}
首先,我们捋一捋思路,顺便复习一下之前保存用户的方法。之前的做法是,如果用户选择【客户登记入库】,程序则去读取D盘的customer.txt文件,然后转换里面的信息到cstList里面。
Application.cstList.add(customer);
这个是方便我们看到刚刚保存的数据,现在我们的难点在于,如何实现将客户对象保存到Excel中?
在CustomerServiceImpl中,我们的saveToExcel方法这是一个壳子,实际上并没有实现保存逻辑呢。
@Override
public boolean saveToExcel(TuziLinkedList customers, String excelPath) {
customers.forEachRemaining(new Consumer() {
@Override
public void accept(Object o) {
//把Object类型的o对象,强制转化成Customer类型
Customer cst = (Customer) o;
System.out.println(cst.getName() + “已经成功保存到Excel!”);
}
});
return true;
}
这个时候,我们就发现问题了,就是saveToExcel这个方法,接收的参数是customers,是TuziLinkedList类型的。这就表明,需要的是一个容器,这个容器里面可能有多个客户对象啊,所以我们的注释写的就有点问题。具体为啥这样写,好像是我打算做成单个入库的,不做批量入库。
似乎是我忘记改了,咳咳… … 小细节,小细节,不要在意。。。
我们得重新设计一下saveToExcel这个方法,修改其参数为当前的客户对象。
然后修改这里:
然后就发现,这个方法报错了,因为我们刚刚把容器对象改成了单个客户对象。注意,虽然现在参数的名字还叫做customers,但是注意看它左边的类型,已经是Customer,而不是之前的TuziLinkedList了。为了安全起见,不造成混淆,我们也把customers改成customer。(接口里面也要改)
再回到实现类,发现这一块报错了。
我们在上一节的【接口】章节中,讲解了这个属于 new一个匿名实现类 ,它是java中的一个高级写法。我们现在为了项目进度,只打算做单个保存,不做批量保存,就暂时用不到了。但是,这种写法还是非常不错的,绝对的装逼利器,值得大家好好品鉴和体会(偷偷告诉你,在很多框架里面,到处都是这种写法。如果再弄得逼格高点,就是所谓的Lamda表达式了,这个暂且不谈)。
好不容易写出来,删掉可惜,我们就注释掉吧。
@Override
public boolean saveToExcel(Customer customer, String excelPath) {
// customers.forEachRemaining(new Consumer() {
// @Override
// public void accept(Object o) {
// //把Object类型的o对象,强制转化成Customer类型
// Customer cst = (Customer) o;
// System.out.println(cst.getName() + “已经成功保存到Excel!”);
// }
// });
return true;
}
没错,还是要用到Hutool,没想到吧。Hutool封装了POI(一种java跟office打交道的lib库),把Excel的生成变得格外简单了。
最后的内容
在开头跟大家分享的时候我就说,面试我是没有做好准备的,全靠平时的积累,确实有点临时抱佛脚了,以至于我自己还是挺懊恼的。(准备好了或许可以拿个40k,没做准备只有30k+,你们懂那种感觉吗)
如何准备面试?
1、前期铺垫(技术沉积)
程序员面试其实是对于技术的一次摸底考试,你的技术牛逼,那你就是大爷。大厂对于技术的要求主要体现在:基础,原理,深入研究源码,广度,实战五个方面,也只有将原理理论结合实战才能把技术点吃透。
下面是我会看的一些资料笔记,希望能帮助大家由浅入深,由点到面的学习Java,应对大厂面试官的灵魂追问
这部分内容过多,小编只贴出部分内容展示给大家了,见谅见谅!
- Java程序员必看《Java开发核心笔记(华山版)》
- Redis学习笔记
- Java并发编程学习笔记
四部分,详细拆分并发编程——并发编程+模式篇+应用篇+原理篇
- Java程序员必看书籍《深入理解 ava虚拟机第3版》(pdf版)
- 大厂面试必问——数据结构与算法汇集笔记
其他像Spring,SpringBoot,SpringCloud,SpringCloudAlibaba,Dubbo,Zookeeper,Kafka,RocketMQ,RabbitMQ,Netty,MySQL,Docker,K8s等等我都整理好,这里就不一一展示了。
2、狂刷面试题
技术主要是体现在平时的积累实用,面试前准备两个月的时间再好好复习一遍,紧接着就可以刷面试题了,下面这些面试题都是小编精心整理的,贴给大家看看。
①大厂高频45道笔试题(智商题)
②BAT大厂面试总结(部分内容截图)
③面试总结
3、结合实际,修改简历
程序员的简历一定要多下一些功夫,尤其是对一些字眼要再三斟酌,如“精通、熟悉、了解”这三者的区别一定要区分清楚,否则就是在给自己挖坑了。当然不会包装,我可以将我的简历给你参考参考,如果还不够,那下面这些简历模板任你挑选:
以上分享,希望大家可以在金三银四跳槽季找到一份好工作,但千万也记住,技术一定是平时工作种累计或者自学(或报班跟着老师学)通过实战累计的,千万不要临时抱佛脚。
另外,面试中遇到不会的问题不妨尝试讲讲自己的思路,因为有些问题不是考察我们的编程能力,而是逻辑思维表达能力;最后平时要进行自我分析与评价,做好职业规划,不断摸索,提高自己的编程能力和抽象思维能力。
的简历给你参考参考,如果还不够,那下面这些简历模板任你挑选:
[外链图片转存中…(img-HMIJn46m-1714132534841)]
以上分享,希望大家可以在金三银四跳槽季找到一份好工作,但千万也记住,技术一定是平时工作种累计或者自学(或报班跟着老师学)通过实战累计的,千万不要临时抱佛脚。
另外,面试中遇到不会的问题不妨尝试讲讲自己的思路,因为有些问题不是考察我们的编程能力,而是逻辑思维表达能力;最后平时要进行自我分析与评价,做好职业规划,不断摸索,提高自己的编程能力和抽象思维能力。