建立这样一个班级是一个很好的试验吗?

时间:2013-11-06 12:40:46

标签: java

class IdPwPair {

  private String pw = "";
  private String id = "";

  //Constructor

  //getter & setter

 }

那是因为我想将大量的ID及其密码放入数组中。

而且,我可能想要添加一个字段accountType,然后Map就不再工作了。

4 个答案:

答案 0 :(得分:4)

是的,创建class并稍后将其用作list<class>是有意义的...更好的方法是使用char[]密码来获取安全性,处理和操作目的的好处。

答案 1 :(得分:1)

我对课程的建议如下:

class IdPwPair {
  final public String id, password;

  public IdPwPair(String id, String password) {
    this.id = id;
    this.password = password;
  }
}

说明

您想要设计的是数据持有者类。强烈建议在此处使用final关键字,而不是添加setter,因为此类不会控制数据,只能将它们保持在一起。

这不仅使得访问数据更容易(也更快),而且还允许更简单的代码结构。您无需跟踪更改数据集内容的时间和位置,而只需使用它们并在它们不再有效时将它们丢弃。这确保了任何时候给定的数据集可以保存确切的一组信息,或者不再存在。在其他人仍在使用数据时,偶然无法更改数据,甚至没有机会陷入困境。

注意:将密码保存在JVM内存中存在安全问题,因为有人可能会破解JVM并拔出密码。因此,如果您正在处理一个需要关注的软件(我怀疑),您应该使用char[]代替,并在内容不再使用后覆盖内容。

答案 2 :(得分:0)

您可能希望对ArrayList<String>Pw使用Id

HashMap<String,String>会将每个ID映射到其密码。

首选使用char[]来存储密码,因为即使在GC进入之前,您也可以在完成后明确擦除数据。

答案 3 :(得分:0)

首先使用小写开头如下

  private String pw = "";
  private String id = "";

创建课程取决于您的要求。您可以使用HashMap<String,String>进行此操作。

 Map<String,String> idOverPassword= new HashMap<String,String>();
 idOverPassword.put("id","password");