Pet*_*y B 3 java out-parameters
我正在编写一个包含一些哈希函数的库.
我希望其中一个函数返回为哈希使用而生成的哈希(byte [])和随机盐(byte []).什么是最友好,最直观的方式?
我有这一点,通过返回的哈希值,然后传回的盐作为out参数,它完美的作品工作的C#版本,但Java不给我出来参数的奢侈品.
有什么想法吗?
最优雅的方法当然是将哈希和salt封装在一个类中并返回此类的实例.
class HashAndSalt {
private byte[] hash, salt;
public HashAndSalt(byte[] hash, byte[] salt) {
this.hash = hash;
this.salt = salt;
}
// access methods goes here
}
Run Code Online (Sandbox Code Playgroud)
对于选择上述做法的主要原因是,它成为在客户端上明确什么该变量包含.如果你返回类似于byte[2][]我的东西,那就会忘记哈希是否在索引0或1中.
如果你让这些领域成为最终的,有些人甚至会争辩说你可以将它们公之于众并跳过访问方法.