小编k13*_*13i的帖子

在接口默认方法中抛出异常

最近我遇到了这段代码.

public interface CustomerQueryService {    
    default Customer getCustomerById(long id) {
        throw new NotImplementedException();
    }
}
Run Code Online (Sandbox Code Playgroud)

后来,事实证明这是该项目的一般惯例.这被认为是一种好习惯吗?

java interface exception java-8 default-method

4
推荐指数
2
解决办法
1428
查看次数

我应该在使用 Jackson 时使用包装器还是原始类型作为字段

我正在使用Jackson JSON解析器。我有应该通过REST服务返回的简单数据传输对象。

public class PersonDto {

  private String name;
  private Integer age; // int?

  public PersonDto(String name, Integer age) {
      this.name = name;
      this.age = age;
  }

  public String getName() {
      return this.name;
  }

  public Integer getAge() {
      return this.age;
  }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我应该更喜欢包装类而不是原始类型作为字段吗?除了包装器可以为空之外,哪些方法具有更多优势?

java json object primitive-types jackson

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

Spring数据findAll()不会急于获取

我有两个具有单向one to many关系的实体。

@Entity
public class Basket {

    @Id
    @GeneratedValue
    private Long id;

    private int capacity;
}

@Entity
public class Item {

    @Id
    @GeneratedValue
    private Long id;

    private String name;

    @ManyToOne
    private Basket basket;
}
Run Code Online (Sandbox Code Playgroud)

我保存了两个对象:

    Basket basket1 = new Basket(100);
    Basket basket2 = new Basket(200);
    Basket basket3 = new Basket(300);
    basketRepository.save(asList(basket1, basket2, basket3));

    Item item1 = new Item("item1", basket1);
    Item item11 = new Item("item11", basket1);
    Item item2 = new Item("item2", basket2);
    Item item22 = new Item("item22", basket2); …
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa eager-loading spring-data

4
推荐指数
2
解决办法
3986
查看次数

如何使用键盘快捷键关闭 IntelliJ 中的其他选项卡?

是否有任何默认键盘快捷键可以关闭除活动选项卡之外的所有选项卡?可以通过右键单击选项卡并选择来完成Close Others,但我想仅使用键盘来完成此操作。

在此输入图像描述

keyboard-shortcuts intellij-idea

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

Spring Data REST-collectionResourceRel与路径

我正在使用Spring Data REST。RepositoryRestResource注释具有两个不同的字段:pathcollectionResourceRel。两者之间有什么区别?我无法通过阅读文档来解决这个问题。

path 描述如下:

此资源将导出到的路径段。

collectionResourceRel描述为:

生成指向集合资源的链接时要使用的rel值。

在所有代码示例中,我都看到这两个属性相同。有什么不同的情况吗?它们之间的实际区别是什么?

java spring annotations spring-data spring-data-rest

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

docker ps-显示图像ID而不是名称

我使用docker ps命令显示正在运行的容器 。有一个IMAGE列,显示创建每个容器的图像的名称。但是与此同时(在容器运行时)我重建了一些映像。新映像具有相同的名称,但ID不同。现在,我想检查从哪个图像特定容器运行。我不能仅使用图像名称来推断此信息。我需要图像ID。是否有可能显示用于运行特定容器的图像的ID?

docker docker-compose container-image

3
推荐指数
2
解决办法
3728
查看次数

Java访问数据库的不同方式

有很多技术可以使用 Java 访问数据。我正在阅读其中一些,包括:

  • JPQL
  • 高品质
  • 标准API
  • 查询dsl
  • 约克
  • 贾曲
  • JDBC
  • 活动JDBC

现在我真的很困惑,因为开销很大。这些技术之间的主要区别和相似之处是什么?哪些是最常用的?简短的比较非常受欢迎。

java database hql jpql criteria-api

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

Java 中同步方法的死锁

此代码来自有关并发的Oracle 教程。我不明白为什么同步方法会导致deadlock. 当方法不是synchronized一切正常时,但是当我添加synchronized关键字时,程序停止并且bowBack()从不调用方法。有人可以以负担得起的方式解释为什么会发生这种情况吗?下面是提到的代码片段:

public class Deadlock {
    static class Friend {
        private final String name;

        Friend(String name) {
            this.name = name;
        }

        String getName() {
            return this.name;
        }

        synchronized void bow(Friend bower) {
            System.out.format("%s: %s"
                        + "  has bowed to me!%n",
                this.name, bower.getName());
            bower.bowBack(this);
        }

        synchronized void bowBack(Friend bower) {
            System.out.format("%s: %s"
                        + " has bowed back to me!%n",
                this.name, bower.getName());
        }
    }

    public static void main(String[] args) {
        final …
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading deadlock

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

在JavaScript中检测Safari浏览器

我找到了以下代码段,该代码段检查是否使用了Safari浏览器:

var isSafari = /constructor/i.test(window.HTMLElement);
Run Code Online (Sandbox Code Playgroud)

但我真的不知道这是怎么回事。有人可以解释一下它是如何工作的吗?我知道constructor该函数返回创建RegExp对象原型并i执行不区分大小写的匹配的函数,但是究竟是HTMLElement什么呢?

javascript regex safari detection

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

使用 vavr 中的索引迭代列表

我正在使用vavr库中的集合。我有一个像这样定义的元素列表:

List<Integer> integers = List.of(1, 2, 3);
Run Code Online (Sandbox Code Playgroud)

如何迭代列表的元素并同时访问索引?在 Groovy 中有一个方法eachWithIndex。我正在寻找类似的东西vavr。我想像这样使用它:

integers.eachWithIndex((int element, int index) -> {
     System.out.println("index = " + index + " element = " + element);
})
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点vavr

java collections foreach lambda vavr

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