2016-05-18 9 views
0

こんにちは私は小さな問題で私を助けてくれる人がいるのだろうか?AddUser(Username1)を使ってユーザーを追加するとユーザーが追加されますが、異なるユーザー名(username2)を使用すると、現在のプロファイルが上書きされ、ユーザー名がusername2の2つのプロファイルが作成されます。 したがって、username1とusername2を返す代わりに、username2とusername2が返されます。プロフィールを作成して各ユーザーの地図に保存する

(これらのクラスの両方が簡素化され、ユーザークラスがOFC電気ショック療法...のバランスをとる、IDのような他の情報を保持します)

マイUserクラス:

public class TakaneUser { 
String Username; 

public TakaneUser(String user1){ 
this.Username = user1 
} 
public static String getUserName() { 
    return Username; 
} 

マイUserhandler /マッピングするためにユーザーを追加しますクラス:

static Map<String, TakaneUser> Usermap = new HashMap(); 
public static void adduser(String user){ 
    Usermap.put(user, new TakaneUser(user)); 
} 

更新:問題が解決され、イム愚かな、

+0

コードは正常です。ユーザー名フィールドを非公開にして最終表示を制限し、変更を止めてください。 –

+2

これはおそらく 'getUserName()'メソッドのキーワード 'static'ですが、私はこのコンパイルがなぜ静的メソッドの中でどういう意味なのか分かりませんし、クラスの場合は' Username 'フィールド?インスタンスデータにアクセスできないはずです) – Aaron

+0

静的メソッドで' this'でコンパイルできません... – ItayD

答えて

0

私はあなたを考えますRコードはコンパイルされませんが、この1は

public class TakaneUser { 
    private String username; 

    public TakaneUser(String user) { 
     this.username = user; 
    } 

    public String getUsername() { 
     return username; 
    } 

、その後

static Map<String, TakeaneUser> userMap = new HashMap<>(); 
public static void addUser(String user){ 
    userMap.put(user, new TakaneUser(user)); 
} 

説明仕事をする必要があります:ユーザー名が静的である場合は、それはそれはインスタンスに関連しているが、クラスに関係していないことを意味ししたがって、すべてのTakaneUserインスタンスは同じユーザー名を共有します。

+0

ありがとう、私はそれを知らないために愚かな気がする – Memer

関連する問題