小编k13*_*13i的帖子

Java Enum <T> vs T作为变量类型

这个声明之间有什么区别吗?

Thread.State state = Thread.State.NEW;
Run Code Online (Sandbox Code Playgroud)

然后

Enum<Thread.State> state = Thread.State.NEW;
Run Code Online (Sandbox Code Playgroud)

在Java?而不是第二个选项有点长?

java generics enums difference

14
推荐指数
3
解决办法
1538
查看次数

Spring Data - 从表中获取最后一条记录

我正在使用Spring Data JPA,我想从Settings表中检索最后一条记录.

我有SettingsRepositorySpring Data实现的标准方法.如何编写方法(或查询)来检索给定表中的最后一行?

interface SettingsRepository extends JpaRepository<Settings, Long> {
    // ?
}
Run Code Online (Sandbox Code Playgroud)

java spring spring-data spring-data-jpa

9
推荐指数
2
解决办法
1万
查看次数

禁止打字稿警告

我有以下打字稿代码:

 private addBrowserNameAsCssClassToHtmlTag(): void {
  var rootElement = angular.element(document.querySelector("html"));
  if (this.isOpera()) {
    rootElement.addClass("opera-browser");
  } else if (this.isFirefox()) {
    rootElement.addClass("firefox-browser");
  } else if (this.isSafari()) {
    rootElement.addClass("safari-browser");
  } else if (this.isIE()) {
    rootElement.addClass("ie-browser");
  } else if (this.isChrome()) {
    rootElement.addClass("chrome-browser");
  }
}

private isOpera(): boolean {
  return (!!(<any>window).opr && !!(<any>opr).addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
}

private isFirefox(): boolean {
  //noinspection TypeScriptUnresolvedVariable
  return typeof InstallTrigger !== 'undefined';
}

private isSafari(): boolean {
  return /constructor/i.test(window.HTMLElement) || ((p): boolean => {
      return p.toString() …
Run Code Online (Sandbox Code Playgroud)

javascript compiler-errors suppress-warnings typescript

8
推荐指数
2
解决办法
4862
查看次数

哪个 lombok 注释最适合 JPA 实体?

我使用lombok 项目Hibernate一起使用。我想知道实体类上通常应该使用哪种 lombok 注释。

第一个候选者是@Data,但它为所有非最终字段生成设置器。由于id字段不是最终的,我有setId()我不想要的方法。

第二个候选者是,@Value但该id字段被标记为最终字段,这就是为什么它必须由应用程序手动分配。

我也可以使用@Builder,但它有与@Data相同的问题。

为了解决问题,@Data我可以为字段编写自己的私有设置器id来覆盖生成的设置器。但也许有更好的方法?在这种情况下,最佳实践是什么?

java annotations jpa lombok

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

没有CQRS的事件采购

我知道CQRS可以在有或没有的情况下实现event sourcing,但它在另一端起作用吗?难道event sourcingCQRS有意义吗?如果是这样,应如何实施?

language-agnostic architecture cqrs event-sourcing

7
推荐指数
2
解决办法
859
查看次数

docker compose - 忽略构建上下文路径

我有 docker-compose.yml 文件,其build context属性指定如下:

version: '3'
services:
  my-service:
    container_name: my-service
    image: my-service
    build:
      context: foo
    ports:
    - 8088:8088

  # other services
Run Code Online (Sandbox Code Playgroud)

当我在docker-compose up本地运行时,构建上下文确实存在并且一切正常。但是,我的 CI 服务器配置为使用相同的 docker-compose.yml 文件,但没有构建上下文(图像通过 SSH 复制为 .tar 存档,然后通过 docker load 加载)。现在我有一个错误:

错误:构建路径 /foo 要么不存在,要么不可访问,要么不是有效的 URL。

所以我试图找到一种方法来抑制在运行时寻找这个构建上下文docker-compose up(我不想构建图像,因为它们已经是最新的),但docker-compose up --no-build不起作用。有任何想法吗?

continuous-integration suppress docker docker-compose

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

Collectors.toSet() 中哪个 Set 实现?

我有以下代码:

Stream.of(1, 4, 5).collect(Collectors.toSet());
Run Code Online (Sandbox Code Playgroud)

从方法一的JavadoctoSet()中可以看到:

不保证返回的 Set 的类型 (...)

我查看了toSet()方法的实际实现,乍一看它似乎HashSet总是返回(至少在 JDK 11 中)。

我知道将来可以在不违反合同的情况下更改实现,但目前是否存在HashSet返回的实现不同的情况?

java set java-stream collectors java-11

6
推荐指数
2
解决办法
3179
查看次数

Java 8流 - 将元素映射到元素对

我有一个元素流.我想将每个元素映射到两个相同类型的不同元素,以便我的流将是两倍长.我通过连接两个流来做到这一点,但我想知道是否可以做到这一点更简单?到目前为止我做了什么:

private List<String> getTranslationFilesNames() {
return Stream.concat(SUPPORTED_LANGUAGES.stream()
                .map(lang -> PATH_TO_FILES_WITH_TRANSLATIONS_1 + lang + FILE_EXTENSION),
        SUPPORTED_LANGUAGES.stream()
                .map(lang -> PATH_TO_FILES_WITH_TRANSLATIONS_2 + lang + FILE_EXTENSION))
        .collect(Collectors.toList());
}
Run Code Online (Sandbox Code Playgroud)

我觉得这个解决方案不是很优雅.是否有更好的方法来达到同样的效果?

java functional-programming stream java-8 java-stream

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

春天 - 正在使用新的不良做法?

手动创建对象,即使用new运算符而不是注册Springbean并使用依赖注入被认为是不好的做法?我的意思是,Spring IoC容器必须知道应用程序中的所有对象吗?如果是这样,为什么?

java spring dependency-injection inversion-of-control new-operator

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

在 Groovy 中抑制警告“访问字段超出其访问权限”

我编写了一个 Groovy 脚本,我需要访问一个具有私有访问修饰符的字段。这工作正常,但会产生警告:

Access to <field_name> exceeds its access rights

我想抑制这个警告。@SuppressWarnings为了实现它,我必须使用什么值的注释?

我试过了@SuppressWarnings("all"),效果很好,但我想对抑制进行更精细的控制。我也试过了,@SuppressWarnings("AccessingNonPublicFieldOfAnotherObject")但是没有效果。

下面这个警告在 IntelliJ 中的外观:

IntelliJ 中的警告

不幸的是,自动提示没有提出任何合理的解决方案:

IntelliJ 提示

groovy access-modifiers suppress-warnings spock

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