返回唯一的int

时间:2019-07-09 05:43:52

标签: java unique

我需要返回此商品的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。

4 个答案:

答案 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;