用 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

21c8f6ba99b70f84c47c087a21ef5613.png

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

0908e052e0530dd23c5791ab127e8e90.png

接受第一个建议:添加 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

2d908b8116a2faeb38cb5a892decc75c.png

接受第一个解决方案。

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

6adaaf52f92505c119bd2450703bf527.png

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

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

945b36045c1983090dedb2977b392fbc.png
图片

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

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

  • 按 Ctrl+Enter

  • 接受第一个解决方案

60a9d0500f168bc7ebabda8962d50a01.png

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

6be0f5991f72c234c211485f76c67449.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 选项卡中选择第三个解决方案

f7345a9748990b147bdb3f7b8546201b.png

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

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

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

07f97e706cf3483401aa212b938d946a.png

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

转自:Lucas Jellema, 来源:technology.amis.nl

------

我们创建了一个高质量的技术交流群,与优秀的人在一起,自己也会优秀起来,赶紧点击加群,享受一起成长的快乐。另外,如果你最近想跳槽的话,年前我花了2周时间收集了一波大厂面经,节后准备跳槽的可以点击这里领取

推荐阅读

··································

你好,我是程序猿DD,10年开发老司机、阿里云MVP、腾讯云TVP、出过书创过业、国企4年互联网6年。从普通开发到架构师、再到合伙人。一路过来,给我最深的感受就是一定要不断学习并关注前沿。只要你能坚持下来,多思考、少抱怨、勤动手,就很容易实现弯道超车!所以,不要问我现在干什么是否来得及。如果你看好一个事情,一定是坚持了才能看到希望,而不是看到希望才去坚持。相信我,只要坚持下来,你一定比现在更好!如果你还没什么方向,可以先关注我,这里会经常分享一些前沿资讯,帮你积累弯道超车的资本。

猜你喜欢

转载自blog.csdn.net/j3T9Z7H/article/details/129891156