Java 如何分配唯一的DOM元素ID

Java 如何分配唯一的DOM元素ID,java,javascript,dom,gwt,Java,Javascript,Dom,Gwt,我的GWT应用程序创建文本区域,每个文本区域必须有一个ID,以便对第三方JavaScript库有用。我知道如何为GWT小部件分配ID;我正在寻找一种生成这些唯一ID的好方法。我相信这就是唯一标识符所需要的(使用时间戳和“widget-”名称空间) Java有一个用于创建唯一ID的内置类: 另一种常见的方法是使用时间戳,即System.currentTimeMillis()Javascript: var idIndex = 0; function getNewId() { return

我的GWT应用程序创建文本区域,每个文本区域必须有一个ID,以便对第三方JavaScript库有用。我知道如何为GWT小部件分配ID;我正在寻找一种生成这些唯一ID的好方法。

我相信这就是唯一标识符所需要的(使用时间戳和“widget-”名称空间)


Java有一个用于创建唯一ID的内置类:

另一种常见的方法是使用时间戳,即
System.currentTimeMillis()

Javascript:

var idIndex = 0;

function getNewId() {
    return "textGWT"+(idIndex++);
}
爪哇:

对于GWT,请查看


UUID不是由GWT实现的,但我找到了一个如何提供您自己的实现的指南:我还找到了一个实现:感谢您的启动。不用担心!顺便说一句,看起来Chi的答案可能更适合你的目的。是的,我认为你是对的:HTMLPanel.createUniqueId似乎正是我想要的。小心使用System.currentTimeMillis(),在许多系统上,调用的粒度不精确到毫秒,即使相隔几毫秒调用,也会得到相同的值。无论如何,你永远不能保证你不会有两次相同的ID使用它。如果您能负担得起共享的话,您增加的全局计数器可能会更安全。HTMLPanel中的方法调用更通用的版本:
Document.get().createUniqueId(),这可能是您想要使用的,如果您不需要它,就不要在HTMLPanel小部件上创建依赖项。
var idIndex = 0;

function getNewId() {
    return "textGWT"+(idIndex++);
}
class IdMaker {

    private static int idIndex = 0;

    public static String generate() {
        return "textGWT"+(idIndex++);
    }
}
String id = HTMLPanel.createUniqueId();