我想从id中获得最高价值。
我的龙目课:
package nl.SBDeveloper.Persons.Lombok;
import lombok.Data;
@Data
public class Person {
private int id;
private String name;
}
我的代码:
Person person = new Person();
我想获取已经使用过的最高ID,然后再递增1。
我该怎么做?我不知道。
亲切的问候,
Stijn
答案 0 :(得分:3)
定义一个静态字段。 @Data仅使用必需的参数创建一个构造函数。不需要ID,因为已经分配了ID,因此您会得到一个仅带有名称的构造函数。
SELECT question, answer
FROM FAQ
WHERE tags in ($keywords)
用法:
@Data
public class Person {
private static final AtomicInteger currentId = new AtomicInteger();
private final int id = currentId.incrementAndGet();
private final String name;
}
答案 1 :(得分:1)
定义数据类:
public class Person {
private int id;
private String name;
Person(int id, String name) {
this.id = id;
this.name = name;
}
public String getName() {
return this.name;
}
public int getId() {
return this.id;
}
}
通过定义PeopleFactory对象并为它提供一个静态personCount
字段,可以跟踪创建的Person对象的数量。为确保此计数器是线程安全的,您需要同步字段或同步负责创建Person的方法。
public class PersonFactory {
private static int personCount = 0;
public PersonFactory() {
}
public synchronized Person getPerson(String name) {
personCount++;
return new Person(personCount, name);
}
}
测试我们的实现:
public class Main {
public static void main(String[] args) {
PersonFactory personFactory = new PersonFactory();
Person bill = personFactory.getPerson("Bill");
System.out.println("ID: " + bill.getId() + ", Name: " + bill.getName());
}
}
ID:1,名称:Bill