如何用 Copliot 帮你搞定 Java 样板代码

点击上方“Java基基”,选择“设为星标”

做积极的人,而不是积极废人!

每天 14:00 更新文章,每天掉亿点点头发...

源码精品专栏

 

来源:technology.amis.nl

9aca4bd907ea2f2a59d95ddaee7404f0.jpeg


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 的前几步,测试它是否可以成为我编程助手,一个真正意义上的“结对编程小伙伴”。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro

  • 视频教程:https://doc.iocoder.cn/video/

组装 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

badf4fb7a3e6de220bc50e5150c46463.png

从打开的 GitHub Copilot 选项中选择列表中的第一个解决方案。将光标定位在粘贴的代码末尾,按 Ctrl+Enter 获取如何继续的建议。

8aecfa0366c1df3b24d022435db4fa44.png

接受第一个建议:添加 getData 和 getColumnNames 方法以及 main 方法。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/yudao-cloud

  • 视频教程:https://doc.iocoder.cn/video/

创建带有 Country 数据的示例 CSV 文件

按照下面步骤创建包含 Country 数据的 CSV 文件:

  • 创建名为 data.csv 的文件

  • 输入 // records for countries with comma separated values for country name, language, capital and population

  • 按下 Ctrl+Enter

f0aec7d17d21e5c8233f326cbdfcbbcc.png

接受第一个解决方案。

需要进行一些后处理,以删除 // Example: ” and ” + newline

5e26c20a9bc35e6c3d7b436045018e00.png

接受 Copilot 的建议,使用有列名的第一行。删除原始注释。

运行 Java 类。输出显示 Java 应用程序处理的 CSV 中的 Country 数据。

fd7faff527415cf5b89f95500ae85517.png

为了实现输出列名,需要执行以下步骤:

  • 在 main 方法的 for 循环之前添加注释 // print names of columns

  • 按 Ctrl+Enter

  • 接受第一个解决方案

0454df7b032451078d1341c65b1c4666.png

再次运行 Java 类。现在列名也加进去了。

bf6d2d86c9a4a7d8b603bfff4691b264.png

结论

在创建一个空的 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 选项卡中选择第三个解决方案

767ffa75efeb49d3f7c7746bab50c2d9.png

最终结果与之前的 DataProcessor 非常相似,有三个不同之处:

  1. 构造函数的输入参数称为 url。

  2. InputStreamReader 是由 URL 对象创建的。0d4cd34ae8a4b8dfbe68490af204ef2d.png

  3. 构造函数传入的值应该是 URL 而不是文件位置。



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢

afbc90d781fcc6556b3d3f458b84d192.png

已在知识星球更新源码解析如下:

1498ca11da5e55cc2e50435b612aefd6.jpeg

71ce35f9a7fefd13dba6528d7dc3e22a.jpeg

b208d4d5c4fa6ee1c40ec5be82701296.jpeg

3f69bf36294e1b825b562ec0579f933c.jpeg

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 101 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 6W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值