用 Copliot 帮你搞定 Java 样板代码
GitHub Copilot 帮我开发了一个处理 CSV 文件的 Java 应用程序。虽然不是什么很困难的任务,但在 Java 中总是感觉比在 Python 或 Node 中更难。由于这次有了 Copilot 的加持,只需要输入两个简单的命令,选择合适的工具建议点击“接受”就搞定了。
本文的 GitHub 仓库:
https://github.com/lucasjellema/my-codepilot-explorations
两个命令:
- 加载 CSV 文件并将数据存储在映射列表中的类
- 打印列名
下面开始介绍具体的步骤。
开始使用 Copilot
首先,要设置好 Copilot。在安装 Copilot 的 VS Code 扩展之后,按照说明文档注册并使用 Copilot(可免费试用 60 天)。我已经在 VS Code 中完成了 Copilot 的前几步,测试它是否可以成为我编程助手,一个真正意义上的“结对编程小伙伴”。
组装 Java 应用程序以处理 CSV 数据文件
第一个试验是创建一个简单的 Java 应用程序,读取一个 CSV 文件并将数据转换为可以轻松处理的数据结构。感觉上似乎比 Node 或 Python 程序更复杂的任务。
要创建处理 CSV 文件的 Java 类
- 在目录 javapilot 中创建名为 DataProcessor.java 的文件
- 输入 // class for loading a csv file and storing data in a list of maps
- 按下 Ctrl+Enter
从打开的 GitHub Copilot 选项中选择列表中的第一个解决方案。将光标定位在粘贴的代码末尾,按 Ctrl+Enter 获取如何继续的建议。
接受第一个建议:添加 getData 和 getColumnNames 方法以及 main 方法。
创建带有 Country 数据的示例 CSV 文件
按照下面步骤创建包含 Country 数据的 CSV 文件:
- 创建名为 data.csv 的文件
- 输入 // records for countries with comma separated values for country name, language, capital and population
- 按下 Ctrl+Enter
接受第一个解决方案。
需要进行一些后处理,以删除 // Example: ” and ” + newline
接受 Copilot 的建议,使用有列名的第一行。删除原始注释。
运行 Java 类。输出显示 Java 应用程序处理的 CSV 中的 Country 数据。
图片
为了实现输出列名,需要执行以下步骤:
- 在 main 方法的 for 循环之前添加注释 // print names of columns
- 按 Ctrl+Enter
- 接受第一个解决方案
再次运行 Java 类。现在列名也加进去了。
我们创建了一个高质量的技术交流群,与优秀的人在一起,自己也会优秀起来,赶紧点击加群,享受一起成长的快乐。
结论
在创建一个空的 Java 文件后,输入了以下两个建议:
// class for loading a csv file and storing data in a list of maps
// print names of columns
然后使用 Ctrl+Enter 三次来获取应用程序的代码片段,就可以成功地编写了一个 Java 程序,实现了我想要的功能。虽然我现在并不是一位熟练的 Java 程序员,但如果我自己完成这个任务的话,时间会更长(即使只是因为我显然在输入任何文本或代码时都会出现很多错别字),而且可能会导致更多的挫折感。
还需要在一个空的 csv 文件中添加一条附加的注释,以生成一个包含 Country 记录的示例 csv 文件:
// records for countries with comma separated values for country name, language, capital and population
在接受 Copilot 的提议之后,我需要对文件进行一些微调以便于使用。公平地说,Copilot 建议了一些来自 GitHub 的可用 CSV 文件。
注意:如果你执行的步骤和我一模一样,也可能会得到不同的结果。Copilot 在不断改进,给出的建议也会随着其演进以及使用环境(以及一些或许没有人完全理解的因素)而有所不同。
从 URL 下载 CSV 数据
让我们尝试创建一个 Java 应用程序,从 GitHub 获取其 CSV 文件,并执行与之前相似的处理。
- 创建一个名为 DataProcessor2.java 的空文件
- 添加注释 // class for downloading a csv file from GitHub and storing data in a list of maps
- 按下 Ctrl+Enter
- 从打开的 GitHub Copilot 选项卡中选择第三个解决方案
最终结果与之前的 DataProcessor 非常相似,有三个不同之处:
- 构造函数的输入参数称为 url。
- InputStreamReader 是由 URL 对象创建的。
- 构造函数传入的值应该是 URL 而不是文件位置。
转自:Lucas Jellema, 来源:technology.amis.nl
------
我们创建了一个高质量的技术交流群,与优秀的人在一起,自己也会优秀起来,赶紧点击加群,享受一起成长的快乐。另外,如果你最近想跳槽的话,年前我花了2周时间收集了一波大厂面经,节后准备跳槽的可以点击这里领取!
推荐阅读
··································
你好,我是程序猿DD,10年开发老司机、阿里云MVP、腾讯云TVP、出过书创过业、国企4年互联网6年。从普通开发到架构师、再到合伙人。一路过来,给我最深的感受就是一定要不断学习并关注前沿。只要你能坚持下来,多思考、少抱怨、勤动手,就很容易实现弯道超车!所以,不要问我现在干什么是否来得及。如果你看好一个事情,一定是坚持了才能看到希望,而不是看到希望才去坚持。相信我,只要坚持下来,你一定比现在更好!如果你还没什么方向,可以先关注我,这里会经常分享一些前沿资讯,帮你积累弯道超车的资本。
相关文章
- Java爱心代码_java怎么敲入代码
- 进销存软件开源java_JSH_ERP 开源版J2EE进销存系统代码源码 v1.0.2「建议收藏」
- java 登陆拦截_登录拦截 – java代码库 – 云代码
- java calendar获取年_Java Calendar获取年、月、日、时间,设置年、月、日
- java代码大全及详解_Java练级攻略[通俗易懂]
- java webservice 实例_Java WebService 简单实例(附实例代码)
- java冒泡排序代码_Java冒泡排序
- 用Java编写的素数代码,判断两个数之间的素数的个数以及素数。
- 你还在遍历搜索集合?别逗了!Java 8 一行代码搞定,是真的优雅
- java的栈内存和堆内存_Java本地方法栈
- JAVA实验室设备管理系统代码_java做一个简单学生管理系统
- Java中的集合与IO
- 【错误记录】生成 Java 文档错误 ( Xxx.java:xx: 错误: 编码GBK的不可映射字符 )
- 实现使用Java代码实现MySQL数据库连接(java连接mysql数据库代码)
- Linux下Java开发入门指南(linux下java开发)
- Linux下部署Java项目实践(linux部署java项目)
- 进程比较Java与Linux进程的异同(java进程linux)
- 程序Linux命令调用Java程序实现交互(linux命令java)
- 处理解决Java中Redis键过期问题(redisjava过期)
- 使用Java轻松导出MySQL数据(java导出mysql)
- [JAVA]十四种Java开发工具点评
- Java基于Swing实现的打猎射击游戏代码
- 分享7款开源Java反编译工具