繁体   English   中英

获取静态Java方法以返回最大变量值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM