对于游戏,我们有一个等级列表,例如默认、mod、jrmod、admin 等。每个等级都存储在数据库中,并包含一些信息,如它继承的信息及其权限。每个等级也可以继承另一个等级,例如admin继承srmod,srmod继承mod,jrmod继承jrmod,srmod继承default。这允许在不重复数据的情况下堆叠权限。
问题是,当前加载等级时,会设置用户等级,然后继承并加载该等级,然后再继承这些等级。然而,这意味着权限继承仅深入 2 层。对于我们上面的例子,admin继承了srmod,srmod又继承了mod。然后就停止了。
我不知道可以使用哪种算法来沿着继承线走下去并加载这些权限。这段代码是Java语言,每个等级可以有多个继承,例如jrmod继承默认等级和领主等级。
最佳答案
您只需要在 while 循环中检查该等级是否有继承,并且只要它有一个获得该等级的权限,然后再次检查......
List<String> permissions = new
Rank rank = getRank(player);
while (rank.hasInheritance()) {
rank = rank.getInheritance();
permissions.addAll(rank.getPermissions());
}
关于java - 遍历继承列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59588561/