2016-03-06 47 views
-2
class person { 

    private int id ; 
    private String name; 
    private boolean gender; 

    public person() { 

    } 


    public AtomicLong getId() { 
     return id; 
    } 


    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public boolean isGender() { 
     return gender; 
    } 

    public void setGender(boolean gender) { 
     this.gender = gender; 
    } 

} 

我想在不使用構造函數和設置函數的情況下在此類中創建唯一的id。在不使用構造函數和設置函數的情況下創建唯一的id

+3

請不要使用無意義的文字工作系統試圖讓你寫給予更多的信息,更好的問題各地。你已經嘗試了什麼?你需要這個ID在多個系統之間是唯一的嗎?代碼的多次運行怎麼樣?它總是從0開始,然後遞增? –

+0

它總是從0開始並遞增 –

+0

在這種情況下,Elliott的答案應該適用於你。請注意,如果您多次運行該程序,您將多次獲得相同的ID - 所以這不是您想要用於持久性數據的東西。 –

回答

0

您可以添加:

private static int ID_GENERATOR = 0; 

然後,在構造函數中,您將使用:

public person() { 
     id = ID_GENERATOR++; 
    } 
+1

那麼,除非你希望它是非線程安全的,否則你不會那麼做。使用AtomicInteger會是一個更好的主意...... –

2

要構造一個person實例,現場初始化將被複制到構造函數。假設那也沒關係,你可以使用一個AtomicInteger之類的東西,

private static AtomicInteger ai = new AtomicInteger(0); 
private int id = ai.incrementAndGet(); 
相關問題