小编jeu*_*x20的帖子

为什么要使用Stack <T>而不是List <T>?

List<T>来自System.Collections.Generic所有事情Stack<T>,以及更多 - 它们基于相同的基础数据结构.在什么条件下选择是否正确Stack<T>

.net c# collections

11
推荐指数
3
解决办法
1万
查看次数

如何在 Kotlin 中创建没有支持字段的外部属性?

我正在使用 JNI 在 Kotlin 中为 C++ 库创建包装器。为了在 C++ 库中实现一个属性,我需要将属性的 getter 和 setter标记为externalcreate ,getX并将setX方法标记为native如 Kotlin 文档中所述

虽然这按预期工作,但这也会为 property 生成一个支持字段,这在我的情况下没有用,因为该值仅位于本机端。

例如,我有以下类,其中包含一个外部属性:

class Something {
    var name: String
        external get
        external set
}
Run Code Online (Sandbox Code Playgroud)

@MetadataIntellIJ中的“Kotlin Bytecode”工具在Java中反编译生成的字节码(去掉注解)如下:

public final class Something {
   @NotNull
   private String name;

   @NotNull
   public final native String getName();

   public final native void setName(@NotNull String var1);
}
Run Code Online (Sandbox Code Playgroud)

如您所见,存在不需要的name字段。有没有办法摆脱这个?

java-native-interface kotlin

5
推荐指数
0
解决办法
52
查看次数

数据复制或 API 网关聚合:使用微服务选择哪一种?

举个例子,假设我正在构建一个简单的社交网络。我目前有两项服务:

  • Identity,管理用户、他们的个人数据(电子邮件、密码哈希等)及其公共配置文件(用户名)和身份验证
  • Social,管理用户的帖子、朋友和动态

Identity服务可以使用其 API 提供用户的公共资料/api/users/{id}

// GET /api/users/1 HTTP/1.1
// Host: my-identity-service

{
  "id": 1,
  "username": "cat_sun_dog"
}
Run Code Online (Sandbox Code Playgroud)

Social服务可以在以下位置发布其 API 的帖子/api/posts/{id}

// GET /api/posts/5 HTTP/1.1
// Host: my-social-service

{
  "id": 5,
  "content": "Cats are great, dogs are too. But, to be fair, the sun is much better.",
  "authorId": 1
}
Run Code Online (Sandbox Code Playgroud)

这很好,但我的客户端(一个 Web 应用程序)希望显示带有作者姓名的帖子,并且它最好在一个 REST 请求中接收以下 JSON 数据。

{
  "id": 5,
  "content": "Cats are great, dogs are too. …
Run Code Online (Sandbox Code Playgroud)

eventual-consistency microservices asp.net-core api-gateway

1
推荐指数
1
解决办法
1487
查看次数