[英]Get a static java method to return highest variable value
在我的程序中,我声明了一个静态变量:
private static int nextID = 0;
在我的构造函数中使用了哪个
Vehicle() {
idNum = nextID++
}
基本上,这是在确保每次我创建一个新的Vehicle对象时,它将具有唯一的标识号。 现在,我想制作一个静态方法,该方法将返回到目前为止使用的最高IDnumber。 我该怎么做?
您可以只返回nextID
的当前值...
但是请注意,您的类不是线程安全的。 换句话说,如果同时创建两个不同的对象,则它们都可以获取相同的“唯一” ID。 为了防止这种情况,您需要某种锁定。
private static int nextID = 0;
private static Object lockObj = new Object();
public static int highestID()
{
synchronized(lockObj)
{
return nextID-1;
}
}
public Vehicle() {
synchronized(lockObj)
{
idNum = nextID++;
}
}
您已经很好地回答了这个问题。 由于您的nextID
变量每次创建对象时都会不断增加,因此无论nextID
获取该变量的值,它始终是最高的。 正如您已经说过的,您需要做的就是创建一个静态方法,该方法返回nextID
的当前值。 只是:
public static int getNextID(){
return nextID;
}
弄清楚了!
Public static int highestID() {
return nextID;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.