0

私は次のような2つの方法があります

public void login(String userName, String password)
{

}

public void login(String userName, String password, Object loginOption)
{

}

そして、特定の方法でそれらすべてを解決したいと考えています。

public boolean getThingsDone(Object...vargs)
{
    //Do The Real Action
    return true;
}

そのため、別の関数呼び出しを行う必要があります:

public void login(String userName, String password)
{
    getThingsDone(userName,password);
}

public void login(String userName, String password, Object loginOption)
{
    getThingsDone(userName,password,loginOption);
}    

異なるパラメータを1つのリストに入れる方法はありますか?同じ呼び出しを行うことができます

getThingsDone(parameterList);

両方のメソッドを login(String ...vargs) に宣言するしかわかりませんが、他の人がこのメソッドを使用すると混乱します。

この問題に遭遇した人はいますか?ヒントをいただければ幸いです。

4

3 に答える 3

3

Login次の3つの属性を持つクラスを作成できますusername, password, loginOption

public class Login {
    private String username;
    private String password;
    private Object loginOptions;

    // Constructors
    // public accessors.
}

そして、ログインメソッドLoginでパラメータとして参照を渡します:-

public void login(Login login) {

}

したがって、合格したい場合は、次loginOptionsのように呼び出します。-

login(new Login(username, password, loginOptions));

それ以外の場合は2-parameterized constructorLoginクラスのを使用してください:-

login(new Login(username, password));

そして、loginメソッドから、次のような他のメソッドを呼び出します。-

getThingsDone(login);

今その方法で、チェックしてください:- if (login.getLoginOptions() != null)。nullの場合は、usernameおよびに関連する処理を実行しpasswordます。そして、それがnullでない場合は、それらすべてに関連することを行います。

于 2012-11-15T07:07:57.700 に答える
3
public void login(String userName, String password, Object loginOption)

loginOptionこのメソッドはそのことを行う必要があり、が nullの場合の状況を処理できる必要があります。

次に、次のように呼び出すことができます。

public void login(String userName, String password) {
    login(userName, password, null);
于 2012-11-15T07:14:33.160 に答える
0

配列リストを渡し、その長さを使用して必要なことを実行できます。オーバーロードされたメソッドを使用して、残りのコードをモジュール化してみませんか?

于 2012-11-15T07:09:13.543 に答える