我的要求是,我有一个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
。那我做的是对的吗?还是有更好的方法?
这是我的方法,使用带有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] 删除。
我来说两句