假设我们有一个API端点:/ cars / 1,它将返回有关汽车的基本信息(id,名称,描述)。 但是我们也可以请求GET / cars / 1?info = extra,这还将返回有关汽车的额外信息(价格,库存)。这些额外的信息作为另一个表存储在我们的数据库中,该表与汽车具有一对一的关系。 如果有帮助,我们的后端是Java Spring Boot应用程序。 有很多方法可以返回数据。您是否会在两个请求中返回相同的对象,并在?info = extra请求中将相应的额外参数设为null?还是为每个请求返回不同的对象? …

2020年9月30日 0条评论 54点热度 阅读全文

是否存在一种情况,您需要为方法使用类型为Object的参数并在内部调用toString(),而不是使用String参数并让该方法的用户来处理字符串转换? 一个示例方法是log(Object) vs log(String)后者的模棱两可性较小,但更灵活,但可能会重复出现log(object.toString())。 是否有某种形式的javadoc约定可用于显式表示该方法的Object变体将使用Object#toString-以避免该方法的使用者忘记覆盖toString? 解决方案如下: 在大多数情况下,method(…

2020年8月1日 0条评论 34点热度 阅读全文

假设:一个简单的模块化Java库只有两个模块: package com.mycorp.lib.logger; public class LogcatLogger implements Logger { @Override public void out(LogcatLogger.LogMessage message){ Log.i("TAG", message.status); } ... } package com.mycorp.lib.webservice; public class JsonWebservic…

2020年7月16日 0条评论 43点热度 阅读全文

我有一个包裹 public abstract class Player { /*...*/ } 还有这些 public abstract class GamePlayer extends Player { /*...*/ } public abstract class TournamentPlayer extends Player { /*...*/ } public abstract class StatelessPlayer extends Player { /*...*/ } 程序包的用户需要播放器,但是为了…

2020年6月4日 0条评论 35点热度 阅读全文

与C#的IEnumerable不同,后者的执行管道可以执行任意次数,而在Java中,流只能被“迭代”一次。 对终端操作的任何调用都会关闭流,使其无法使用。这种“功能”带走了很多力量。 我想这不是技术原因。这种奇怪的限制背后的设计考虑是什么? 编辑:为了演示我在说什么,请考虑以下C#中的Quick-Sort实现: IEnumerable<int> QuickSort(IEnumerable<int> ints) { if (!ints.Any()) { return Enumerable.Em…

2020年3月30日 0条评论 28点热度 阅读全文

我想使用Kotlin定义客户端和服务器之间的接口(interface)。 目前,Kotlin可用于3个平台:Java,Android,Web(JS)。 我可以在所有这些平台上使用哪些Kotlin内置类? 我希望kotlin-stdlib和kotlin-stdlib-js之间有一些常见的库依赖关系,但是找不到。 另一方面,我设法创建了可在所有3个平台上使用的以下界面: interface SomeApi { fun update(params: Collection<String>) } 因此,除了 Co…

2020年2月21日 0条评论 41点热度 阅读全文

到目前为止,大多数人已经痛苦地意识到,用于处理日历日期的Java API(特别是类java.util.Date和java.util.Calendar)真是一团糟。 从我的头顶上: 日期是可变的 日期表示时间戳记,而不是日期 没有简单的方法可以在日期成分(日,月,年...)和日期 之间进行转换 日历使用起来很笨拙,并尝试将不同的日历系统组合成一个类 This post很好地总结了它,并且 JSR-310也解决了这些问题。 现在我的问题是: 这些类如何将其纳入Java SDK?这些问题中的大多数似乎相当明显(尤其是Da…

2020年2月3日 0条评论 64点热度 阅读全文

我正在为Discord制作API包装器,并尝试以hello有效负载中给定的时间间隔发送心跳有效负载。 private void handleReceive(GatewayReceive gatewayReceive) { PayloadReceiveOpcode opcode=PayloadReceiveOpcode.getInstance(gatewayReceive.op); if(opcode==null) { //TODO Add throws here or something return; } swi…

2019年12月18日 0条评论 50点热度 阅读全文

我有一组从我的客户端应用程序发送到处理它们的服务器的请求。我用此请求创建新请求 POST api/v1/requests 发送请求后,它将接收状态 PENDING,并且在评估状态后将状态更改为 RESOLVED。因此,我有一个 requests集合,该集合分为2个子集合: requests.pending和 requests.resolved。 我需要一种方法来同时访问这两个页面,并且还可以缓存这些页面。 它将是使它们像这样的REST方法: GET api/v1/requests/page/:page - retu…

2019年12月12日 0条评论 42点热度 阅读全文

与C#的IEnumerable不同,后者的执行管道可以执行任意次数,而在Java中,流只能被“迭代”一次。 对终端操作的任何调用都会关闭流,使其无法使用。这种“功能”带走了很多力量。 我想这不是技术原因。这种奇怪的限制背后的设计考虑是什么? 编辑:为了演示我在说什么,请考虑以下C#中的Quick-Sort实现: IEnumerable<int> QuickSort(IEnumerable<int> ints) { if (!ints.Any()) { return Enumerable.Em…

2019年10月29日 0条评论 67点热度 阅读全文