2016-03-06 56 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(); 
相关问题