zoukankan      html  css  js  c++  java
  • 可用于权限计算的帮助类

    http://blog.csdn.net/fulinkster/article/details/6597938

     1 package com.fh.util;
     2 
     3 import java.math.BigInteger;
     4 
     5 /**
     6  * @author Administrator
     7  * 权限计算帮助类
     8  */
     9 public class RightsHelper {
    10     /**
    11      * 利用BigInteger对权限进行2的权的和计算
    12      * @param rights int型权限编码数组
    13      * @return 2的权的和
    14      */
    15     public static BigInteger sumRights(int[] rights){
    16         BigInteger num = new BigInteger("0");
    17         for(int i=0; i<rights.length; i++){
    18             num = num.setBit(rights[i]);
    19         }
    20         return num;
    21     }
    22     /**
    23      * 利用BigInteger对权限进行2的权的和计算
    24      * @param rights String型权限编码数组
    25      * @return 2的权的和
    26      */
    27     public static BigInteger sumRights(String[] rights){
    28         BigInteger num = new BigInteger("0");
    29         for(int i=0; i<rights.length; i++){
    30             num = num.setBit(Integer.parseInt(rights[i]));
    31         }
    32         return num;
    33     }
    34     
    35     /**
    36      * 测试是否具有指定编码的权限
    37      * @param sum
    38      * @param targetRights
    39      * @return
    40      */
    41     public static boolean testRights(BigInteger sum,int targetRights){
    42         return sum.testBit(targetRights);
    43     }
    44     
    45     /**
    46      * 测试是否具有指定编码的权限
    47      * @param sum
    48      * @param targetRights
    49      * @return
    50      */
    51     public static boolean testRights(String sum,int targetRights){
    52         if(Tools.isEmpty(sum))
    53             return false;
    54         return testRights(new BigInteger(sum),targetRights);
    55     }
    56     
    57     /**
    58      * 测试是否具有指定编码的权限
    59      * @param sum
    60      * @param targetRights
    61      * @return
    62      */
    63     public static boolean testRights(String sum,String targetRights){
    64         if(Tools.isEmpty(sum))
    65             return false;
    66         return testRights(new BigInteger(sum),targetRights);
    67     }
    68     
    69     /**
    70      * 测试是否具有指定编码的权限
    71      * @param sum
    72      * @param targetRights
    73      * @return
    74      */
    75     public static boolean testRights(BigInteger sum,String targetRights){
    76         return testRights(sum,Integer.parseInt(targetRights));
    77     }
    78 }

    sumRights方法调用了BigInteger的setBit方法,实际上就是进行2的权的和运算。

    比如:RightsHelper.sumRights(new int[]{1,2,3,4});实际上就是:1^2+2^2+3^2+4^2

  • 相关阅读:
    android-自定义View
    java
    记录-常用的开发技巧
    便签:
    zTree 树形控件 ajax动态加载数据
    jquery ajax 传数据到后台乱码的处理方法
    spring + quartz 定时
    SpringMVC + Spring + MyBatis 学习笔记:提交数据遭遇基础类型和日期类型报400错误解决方法
    复制新项目 ,tomcat部署时名字还是旧项目名
    jsp 通用获取所有表单值传后台
  • 原文地址:https://www.cnblogs.com/a757956132/p/5467823.html
Copyright © 2011-2022 走看看