用于限制对方法的访问的唯一标识

Unique id to restrict access to methods

我有一个对象,我想限制对其某些方法的访问,以便只有该对象的创建者才能访问它们:

class RestrictedObject {

    private final UUID id;

    public RestrictedObject(UUID id) {
        this.id = id;
    }

    public boolean restrictedMethod(UUID anId) {
        if (anId.equals(this.id)) {
            //do stuff
            return true;
        } else {
            return false;
        }
    }
}

对象的创建者会这样做:

UUID id = UUID.randomUUID();
RestrictedObject o = new RestrictedObject(id);
o.restrictedMethod(id);

这是好的做法还是糟糕的想法?

试图在用户可以执行任意 Java 代码的系统中实施访问控制是一个糟糕的主意。
这基本上是 Java applets 背后的想法,它已经被一遍又一遍地证明是很难做到正确的。
您需要确保有权访问该对象的用户不能使用反射等技巧来读取 UUID 字段。
我会质疑您实际上要解决什么问题,并找到一种更好的沙盒用户方法。