用 Copliot 帮你搞定 Java 样板代码

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

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

组装 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 方法。

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

创建带有 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 非常相似,有三个不同之处:

  1. 构造函数的输入参数称为 url。
  2. InputStreamReader 是由 URL 对象创建的。
  3. 构造函数传入的值应该是 URL 而不是文件位置。


相关文章
|
6月前
|
Java 开发工具
【Azure Storage Account】Java Code访问Storage Account File Share的上传和下载代码示例
本文介绍如何使用Java通过azure-storage-file-share SDK实现Azure文件共享的上传下载。包含依赖引入、客户端创建及完整示例代码,助你快速集成Azure File Share功能。
468 6
|
6月前
|
Java 数据处理 API
为什么你的Java代码应该多用Stream?从循环到声明式的思维转变
为什么你的Java代码应该多用Stream?从循环到声明式的思维转变
334 115
|
6月前
|
安全 Java 编译器
为什么你的Java代码需要泛型?类型安全的艺术
为什么你的Java代码需要泛型?类型安全的艺术
242 98
|
6月前
|
Java 编译器 API
java最新版和java8的区别,用代码展示
java最新版和java8的区别,用代码展示
521 43
|
6月前
|
安全 Java 容器
告别空指针噩梦:Optional让Java代码更优雅
告别空指针噩梦:Optional让Java代码更优雅
485 94
|
6月前
|
安全 Java 容器
告别繁琐判空:Optional让你的Java代码更优雅
告别繁琐判空:Optional让你的Java代码更优雅
|
7月前
|
IDE Java 关系型数据库
Java 初学者学习路线(含代码示例)
本教程为Java初学者设计,涵盖基础语法、面向对象、集合、异常处理、文件操作、多线程、JDBC、Servlet及MyBatis等内容,每阶段配核心代码示例,强调动手实践,助你循序渐进掌握Java编程。
897 3
|
7月前
|
安全 Java 应用服务中间件
Spring Boot + Java 21:内存减少 60%,启动速度提高 30% — 零代码
通过调整三个JVM和Spring Boot配置开关,无需重写代码即可显著优化Java应用性能:内存减少60%,启动速度提升30%。适用于所有在JVM上运行API的生产团队,低成本实现高效能。
844 3
|
7月前
|
Java
java入门代码示例
本文介绍Java入门基础,包含Hello World、变量类型、条件判断、循环及方法定义等核心语法示例,帮助初学者快速掌握Java编程基本结构与逻辑。
555 0