一文搞懂JavaEE的接口
在Java EE(Java Enterprise Edition)开发环境中,编程意义上的“接口”(interface)和API接口虽然都涉及接口的概念,但它们属于不同层面的术语。
1. 编程意义上的“接口”(interface)
在Java编程语言中,接口(interface)是一种引用类型,它是方法的集合,这些方法被定义在接口中,但没有实现(即没有方法体)。接口可以被类实现,实现接口的类必须提供接口中所有方法的具体实现。接口是Java实现多态性的重要方式之一。
例子:
public interface Animal {
void eat();
void sleep();
}
public class Dog implements Animal {
@Override
public void eat() {
System.out.println("Dog is eating.");
}
@Override
public void sleep() {
System.out.println("Dog is sleeping.");
}
}
在这个例子中,我们定义了一个Animal
接口,它有两个方法:eat
和sleep
。然后我们创建了一个Dog
类,它实现了Animal
接口,并为接口中的每个方法提供了具体的实现。
2. API接口
API(Application Programming Interface,应用程序接口)是软件开发中的一种工具,它定义了一系列函数、协议和工具,使软件应用程序能够与其他软件应用程序进行交互。在Java EE环境中,API接口通常是预定义的方法集,允许开发者调用特定的功能或操作数据。
例子:假设我们正在开发一个电子商务网站,并且需要使用支付功能。我们可能会使用一个第三方支付平台的API接口来实现支付功能。这个API接口可能包括以下几个方法:
createPayment
:创建一个新的支付订单。processPayment
:处理支付订单,执行支付操作。checkPaymentStatus
:查询支付订单的状态。
在我们的Java代码中,我们可以调用这些API接口的方法来实现支付功能,而不需要了解支付平台的内部实现细节。
3. 接口文档
接口文档是对API接口的详细描述,它包含了关于接口如何使用、调用和集成的详细信息。接口文档通常包括以下内容:
- 接口名称和描述:对接口的简要说明。
- 请求方法:如GET、POST、PUT、DELETE等。
- 请求URL:接口的访问地址。
- 请求参数:调用接口时需要传递的参数及其类型、格式和描述。
- 响应数据:接口返回的数据格式和内容。
- 错误码和错误信息:接口可能返回的错误码和对应的错误信息。
- 使用示例:一个或多个调用接口的示例,帮助开发者理解如何正确使用接口。
例子:继续上面的支付API接口例子,接口文档可能如下:
接口名称:createPayment
描述:创建一个新的支付订单。
请求方法:POST
请求URL:[https://api.paymentplatform.com/payments]
请求参数:
amount
(浮点数):支付金额。currency
(字符串):支付货币类型,如“USD”。customerId
(字符串):客户ID。
响应数据:
paymentId
(字符串):支付订单ID。status
(字符串):支付状态,如“CREATED”。
错误码和错误信息:
400
:请求参数错误。500
:服务器内部错误。
使用示例:
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.paymentplatform.com/payments"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(
"{\"amount\": 100.0, \"currency\": \"USD\", \"customerId\": \"12345\"}"))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
这个示例展示了如何使用Java的HttpClient
来调用createPayment
接口,并传递必要的请求参数。通过查看接口文档,开发者可以了解如何构建请求、传递参数以及处理响应。
4. 总结:
接口(interface)和API接口是实现功能和模块化的重要手段,而接口文档则是对这些接口如何使用的详细说明。它们共同帮助开发者在Java EE环境中实现与其他软件或服务的交互。
一文搞懂JavaEE的接口的更多相关文章
- 夯实Java基础系列6:一文搞懂抽象类和接口,从基础到面试题,揭秘其本质区别!
目录 抽象类介绍 为什么要用抽象类 一个抽象类小故事 一个抽象类小游戏 接口介绍 接口与类相似点: 接口与类的区别: 接口特性 抽象类和接口的区别 接口的使用: 接口最佳实践:设计模式中的工厂模式 接 ...
- Web端即时通讯基础知识补课:一文搞懂跨域的所有问题!
本文原作者: Wizey,作者博客:http://wenshixin.gitee.io,即时通讯网收录时有改动,感谢原作者的无私分享. 1.引言 典型的Web端即时通讯技术应用场景,主要有以下两种形式 ...
- 一文搞懂所有Java集合面试题
Java集合 刚刚经历过秋招,看了大量的面经,顺便将常见的Java集合常考知识点总结了一下,并根据被问到的频率大致做了一个标注.一颗星表示知识点需要了解,被问到的频率不高,面试时起码能说个差不多.两颗 ...
- 一文搞懂指标采集利器 Telegraf
作者| 姜闻名 来源|尔达 Erda 公众号 导读:为了让大家更好的了解 MSP 中 APM 系统的设计实现,我们决定编写一个<详聊微服务观测>系列文章,深入 APM 系统的产品.架构 ...
- 一文搞懂Google Navigation Component
一文搞懂Google Navigation Component 应用中的页面跳转是一个常规任务, Google官方提供的解决方案是Android Jetpack的Navigation componen ...
- 一文搞懂Flink Window机制
Windows是处理无线数据流的核心,它将流分割成有限大小的桶(buckets),并在其上执行各种计算. 窗口化的Flink程序的结构通常如下,有分组流(keyed streams)和无分组流(non ...
- 一文搞懂RAM、ROM、SDRAM、DRAM、DDR、flash等存储介质
一文搞懂RAM.ROM.SDRAM.DRAM.DDR.flash等存储介质 存储介质基本分类:ROM和RAM RAM:随机访问存储器(Random Access Memory),易失性.是与CPU直接 ...
- 基础篇|一文搞懂RNN(循环神经网络)
基础篇|一文搞懂RNN(循环神经网络) https://mp.weixin.qq.com/s/va1gmavl2ZESgnM7biORQg 神经网络基础 神经网络可以当做是能够拟合任意函数的黑盒子,只 ...
- 一文搞懂 Prometheus 的直方图
原文链接:一文搞懂 Prometheus 的直方图 Prometheus 中提供了四种指标类型(参考:Prometheus 的指标类型),其中直方图(Histogram)和摘要(Summary)是最复 ...
- 一文搞懂vim复制粘贴
转载自本人独立博客https://liushiming.cn/2020/01/18/copy-and-paste-in-vim/ 概述 复制粘贴是文本编辑最常用的功能,但是在vim中复制粘贴还是有点麻 ...
随机推荐
- JS leetcode 加一 题解分析
壹 ❀ 引 今天是刷leetcode的第三天,根据推荐优先刷数据结构相关的卡片,先把数据结构知识体系建立起来,不然就是题目无从下手答案也看不懂的尴尬局面.那么今天的题目是加一,老规矩,先记录自己的解题 ...
- test-02-java 单元测试框架 junit5 入门介绍
拓展阅读 junit5 系列 基于 junit5 实现 junitperf 源码分析 Auto generate mock data for java test.(便于 Java 测试自动生成对象信息 ...
- java类初始化及代码块加载顺序连根拔起
说明 相信很多人对于java中父子继承关系中,子类实例化调用过程中,代码块的执行顺序都容易忘记或搞混,尤其是java初级笔试题或面试题最容易出这类题目,让人恨得牙痒痒!!! 本文就一次性将其连根铲除, ...
- Java使用ConcurrentHashMap实现简单的内存式缓存
需求说明: 实际项目中我打算把用户和组织信息放到缓存中,基于此提出以下几点需求: 1.数据存储在内存中: 2.允许以键值对的方式存储对象类数据并带有过期策略: 3.不限制内存使用,但cache也不能给 ...
- Failed to bind properties under ” to com.zaxxer.hikari.HikariDataSource
1.问题说明 今天配置spring boot多数据源,同时用到了oracle和postgresql,结果配置完毕后启动报这个错. 2.原因分析 忘记添加postgresql驱动了!!! 3.解决方案 ...
- 常用SQL语句备查
查询表中某一列是否有重复值 SELECT bizType, COUNT(bizType) FROM Res GROUP BY bizType HAVING COUNT(bizType) > 1 ...
- vm添加新硬盘时,不用重启即可让新硬盘生效
# 两个命令使用其中一个即可 echo '- - -' > /sys/class/scsi_host/host0/scan echo '- - -' > /sys/class/scsi_h ...
- 【Azure 事件中心】Event Hub 消费端出现 Timeout Exception,errorContext中 LINK_CREDIT为0的解释
问题描述 在使用Event Hub SDK消费数据过程中,出现大量的Timeout Exception,详细消息为: com.microsoft.azure.eventhubs.TimeoutExce ...
- 【Azure 存储服务】App Service 访问开启防火墙的存储账号时遇见 403 (This request is not authorized to perform this operation.)
问题描述 需要 App Service 访问开启防火墙的存储账号.存储账号中设置为允许选中的VNET访问,同时允许了信任的Azure服务的访问,但是仍然报错 "403 (This reque ...
- Huggingface初上手即ERNIE-gram句子相似性实战
大模型如火如荼的今天,不学点语言模型(LM)相关的技术实在是说不过去了.只不过由于过往项目用到LM较少,所以学习也主要停留在直面--动眼不动手的水平.Huggingface(HF)也是现在搞LM离不开 ...