所有扩展类仅访问一次静态变量

达米安·阿门(Damien-Amen)

我的要求是,我有一个auth类,该类提供身份验证令牌(是String),并且该令牌可以在所有其他类中使用。我写了一小段代码,但是不幸的是,所有其他类都分别生成身份验证令牌。因此,每个类只有一个身份验证令牌。但是我很快做了一些如下更改。请看看这是正确的方法还是有更好的方法呢?

public class AuthProvider {
    public static String authKey;
    public static String provideAuth() {
        AuthProvider pro = new AuthProvider();
        String key = pro.generateAuthKey();
        authKey = key;
        return key;
    }
    private String generateAuthKey() {
        Random rand = new Random();
        int n = rand.nextInt(5000) + 1;
        return String.valueOf(n);
    }
}

上面的一个是我的Auth提供程序类,它为所有其他类提供auth令牌

现在,我的名为“ FirstClass”的子类需要身份验证令牌来执行其他操作,如下所示

public class FirstClass extends AuthProvider {

    public String getValueFromFirstClass() {
        AuthProvider.provideAuth();
        String s = AuthProvider.authKey;
        return "FirstClassAuth: " + s;
    }
}

我的第二个子类称为SecondClass它将成为主类,因为该main方法将调用该类中的方法,该类也负责从中获取某个值FirstClass

public class SecondClass extends AuthProvider {

    public String getValueFromSecondClass() {
        FirstClass firstClass = new FirstClass();
        String firstClassString = firstClass.getValueFromFirstClass();
        String s = AuthProvider.authKey;
        return "SecondClass Auth: " + s + " -------- " + firstClassString;
    }
    public static void main(String[] args) {
        SecondClass class2 = new SecondClass();
        System.out.println(class2.getValueFromSecondClass());
    }
}

因此,我的要求是:每个子类不需要两个不同的“ AuthTokens”。我可以在FirstClass和中使用一个身份验证令牌SecondClass那我做的是对的吗?还是有更好的方法?

罗比·科尼利森(Robby Cornelissen)

这是我的方法,使用带有static初始化块的全局常量

public class AuthProvider {
    public static final String AUTH_KEY;

    static {
        AUTH_KEY = String.valueOf(new Random().nextInt(5000) + 1);
    }
}

然后,在任何其他类中,您都可以使用它AuthProvider.AUTH_KEY来检索值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我该如何解决通过方法一次访问所有非静态和静态变量的问题?

来自分类Dev

应该在仅实例化一次的类中使用静态变量吗?

来自分类Dev

ES6模块中的静态变量(仅初始化一次)

来自分类Dev

从文件初始化的静态变量仅初始化一次

来自分类Dev

目标C-是什么使静态变量仅初始化一次?

来自分类Dev

PHP:从扩展类的方法访问父级的静态变量

来自分类Dev

从另一个类访问静态变量

来自分类Dev

从另一个类访问静态变量

来自分类Dev

获取类的所有静态变量而无需反射

来自分类Dev

扩展类和静态变量

来自分类Dev

如何在另一个类的静态成员函数中访问私有静态变量?

来自分类Dev

多个类需要访问静态变量

来自分类Dev

在类外访问公共静态变量

来自分类Dev

Javascript:在递归函数中一次初始化变量(如静态变量)

来自分类Dev

对一个类的所有元素仅绑定一次处理程序

来自分类Dev

一次查看所有C#类扩展和部分

来自分类Dev

在超类上声明最终静态变量与在扩展类上声明有什么区别?

来自分类Dev

如何一次将Java类中的所有变量初始化为零

来自分类Dev

从存储在变量中的类访问静态变量

来自分类Dev

WordPress PHP扩展类指的是“错误”的静态变量

来自分类Dev

仅最近一次出现的所有值

来自分类Dev

仅附加所有数组项一次

来自分类Dev

在函数php中的类内部访问公共静态变量

来自分类Dev

访问类的静态变量后,执行流程如何?

来自分类Dev

使用反射访问模型类的静态变量

来自分类Dev

静态变量不能被其他类访问

来自分类Dev

PyChar:一次浏览所有文件和类

来自分类Dev

php类对所有实例执行一次

来自分类Dev

需要访问其分配类的扩展方法的动态变量

Related 相关文章

  1. 1

    我该如何解决通过方法一次访问所有非静态和静态变量的问题?

  2. 2

    应该在仅实例化一次的类中使用静态变量吗?

  3. 3

    ES6模块中的静态变量(仅初始化一次)

  4. 4

    从文件初始化的静态变量仅初始化一次

  5. 5

    目标C-是什么使静态变量仅初始化一次?

  6. 6

    PHP:从扩展类的方法访问父级的静态变量

  7. 7

    从另一个类访问静态变量

  8. 8

    从另一个类访问静态变量

  9. 9

    获取类的所有静态变量而无需反射

  10. 10

    扩展类和静态变量

  11. 11

    如何在另一个类的静态成员函数中访问私有静态变量?

  12. 12

    多个类需要访问静态变量

  13. 13

    在类外访问公共静态变量

  14. 14

    Javascript:在递归函数中一次初始化变量(如静态变量)

  15. 15

    对一个类的所有元素仅绑定一次处理程序

  16. 16

    一次查看所有C#类扩展和部分

  17. 17

    在超类上声明最终静态变量与在扩展类上声明有什么区别?

  18. 18

    如何一次将Java类中的所有变量初始化为零

  19. 19

    从存储在变量中的类访问静态变量

  20. 20

    WordPress PHP扩展类指的是“错误”的静态变量

  21. 21

    仅最近一次出现的所有值

  22. 22

    仅附加所有数组项一次

  23. 23

    在函数php中的类内部访问公共静态变量

  24. 24

    访问类的静态变量后,执行流程如何?

  25. 25

    使用反射访问模型类的静态变量

  26. 26

    静态变量不能被其他类访问

  27. 27

    PyChar:一次浏览所有文件和类

  28. 28

    php类对所有实例执行一次

  29. 29

    需要访问其分配类的扩展方法的动态变量

热门标签

归档