Consider that I have Algorithm
enum as
public enum Algorithm {
SHA1("sha1"),
HMAC("hmac"),;
Algorithm(final String algorithm) {
this.algorithm = algorithm;
}
private final String algorithm;
public String getAlgorithm() {
return algorithm;
}
}
and I have different algorithms as
public class Sha1 {
public static String hash(final String text, final byte[] sb) {...}
}
and
public class Hmac {
public static String hash(final String text, final byte[] sb) {...}
}
I want to return their instances when someone calls for example
Algorithm.SHA1.getInstance()
Question
- How can I return the instance since my method is static? (It is static so that multiple threads can not play around with each other data)