2014-04-10 5 views
0

Что я пытаюсь сделать, так это создать интерфейс, который можно использовать для реализации класса соединения. Я должен использовать это для различной аутентификации, такой как LDAP, OpenId и т. Д .; Поэтому я хочу передать имя пользователя, пароль и переменное количество аргументов. Как мне это сделать. Я попробовал это. Я иду в правильном направлении.? Если это так, как мне инициализировать объект для хранения переменных параметров? Новичок в java. будет очень благодарна за помощь. Благодаря!Как передать переменные аргументы/объект, содержащий переменные аргументы в java?

package com.cerner.jira.plugins.esig.servicemanager; 
import javax.naming.AuthenticationException; 

public interface AuthenticationServiceManager { 

    /** 
    * Creates the Connection for the specific user logging in, and binds the 
    * user's credentials to object. 
    * 
    * @param userName 
    *   The user name to authenticate . 
    * @param password 
    *   The user's password to check . 
    * @param args 
    *   is an object that holds variable arguments which can be used 
    *   to authenticate using both LDAP and OpenId 
    * @return boolean The connection status showing whether the user has been 
    *   successfully authenticated or not. 
    * @throws AuthenticationException 
    *    If there is an error authenticating with the passed 
    *    parameters 
    **/ 

    boolean authenticate(String username, String password, Object... args) 
     throws AuthenticationException; 

    /** 
    * Disconnects the connection. 
    */ 
    void disconnect(); 
} 
+0

Вы используете java 5 или выше? Какую точную ошибку вы получаете? Если ошибки нет, продолжайте. Запускайте и проверяйте, как только сможете. – Snicolas

+0

Я использую java 6 ... Поскольку я новичок, я просто хотел убедиться ... и посмотреть, есть ли альтернатива или лучший способ сделать это. – user3438489

+0

Машина - это ваша бритва Оккама (http: // ru.wikipedia.org/wiki/Occam's_razor), а не SOF. – Snicolas

ответ

0

Похоже, у вас это есть. Вы называете это так:

authenticate(username, password, someOtherArgument, yetAnotherArgument, stillAnotherArgument); 

А потом внутри вашего метода, args[0] будет содержать someOtherArgument, args[1] будет содержать yetAnotherArgument и args[2] будет содержать stillAnotherArgument.

+0

Спасибо Майку !!! что помогает ... – user3438489

+0

Ну, если я хочу просто передать имя пользователя и пароль в методе проверки подлинности для реализации класса. Должен ли я сделать класс абстрактным? – user3438489

+0

Вы все равно можете вызвать 'authenticate (имя пользователя, пароль);', 'args' будет тогда пустым' Object [] '. –

Смежные вопросы