最近我遇到了这段代码.
public interface CustomerQueryService {
default Customer getCustomerById(long id) {
throw new NotImplementedException();
}
}
Run Code Online (Sandbox Code Playgroud)
后来,事实证明这是该项目的一般惯例.这被认为是一种好习惯吗?
我正在使用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)
在这种情况下,我应该更喜欢包装类而不是原始类型作为字段吗?除了包装器可以为空之外,哪些方法具有更多优势?
我有两个具有单向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) 我正在使用Spring Data REST。RepositoryRestResource注释具有两个不同的字段:path和collectionResourceRel。两者之间有什么区别?我无法通过阅读文档来解决这个问题。
path 描述如下:
此资源将导出到的路径段。
并collectionResourceRel描述为:
生成指向集合资源的链接时要使用的rel值。
在所有代码示例中,我都看到这两个属性相同。有什么不同的情况吗?它们之间的实际区别是什么?
我使用docker ps命令显示正在运行的容器
。有一个IMAGE列,显示创建每个容器的图像的名称。但是与此同时(在容器运行时)我重建了一些映像。新映像具有相同的名称,但ID不同。现在,我想检查从哪个图像特定容器运行。我不能仅使用图像名称来推断此信息。我需要图像ID。是否有可能显示用于运行特定容器的图像的ID?
有很多技术可以使用 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) 我找到了以下代码段,该代码段检查是否使用了Safari浏览器:
var isSafari = /constructor/i.test(window.HTMLElement);
Run Code Online (Sandbox Code Playgroud)
但我真的不知道这是怎么回事。有人可以解释一下它是如何工作的吗?我知道constructor该函数返回创建RegExp对象原型并i执行不区分大小写的匹配的函数,但是究竟是HTMLElement什么呢?
我正在使用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 ×7
spring-data ×2
annotations ×1
collections ×1
concurrency ×1
criteria-api ×1
database ×1
deadlock ×1
detection ×1
docker ×1
exception ×1
foreach ×1
hibernate ×1
hql ×1
interface ×1
jackson ×1
java-8 ×1
javascript ×1
jpa ×1
jpql ×1
json ×1
lambda ×1
object ×1
regex ×1
safari ×1
spring ×1
vavr ×1