我需要返回此商品的int唯一SKU号
public class SKU {
private static int pkey_next = 123018;
public int getSKU() { // Returns the int unique SKU number for this item
return pkey_next++;
}
}
SKU类必须具有private static int pkey_next = 123018;
,它将为我们在商店中拥有的商品定义开始的“主键”标识号。因为它始于123018,所以我应该得到System.out.println(three.getSKU()); // 123020.
我现在收到123018。
答案 0 :(得分:2)
我认为您正在尝试在获得独特价值的同时实现原子性。如果是,那么您可以尝试执行以下操作
createuser -P -s -e [username]
答案 1 :(得分:1)
定义下面的类
public static class SKU {
private static int pkey_next = 123018;
public static int getSKU() {
return ++pkey_next;
}
}
并使用以下语句获取方法
SKU.getSKU()
您的情况:
System.out.println(SKU.getSKU());
答案 2 :(得分:1)
我的猜测是这是您要的信息:
public class SKU {
private static int pkey_next = 123018;
private int pkey;
public SKU() {
this.pkey = pkey_next++;
}
public int getSKU() { // Returns the int unique SKU number for this item
return this.pkey;
}
}
也就是说,使用静态字段作为计数器,实际为每个实例赋予其唯一的pkey
值。
SKU one = new SKU();
SKU two = new SKU();
SKU three = new SKU();
System.out.println(three.getSKU()); // 123020
答案 3 :(得分:-1)
您正在执行发布增量,因此为什么要获得相同的值。您需要在此处进行预递增,即在返回之前递增。
只需将return pkey_next++;
更改为++pkey_next;