2011-11-19 29 views
5

He definido la clase A que tiene varios métodos. Luego tengo esta otra clase, es decir, un bean administrado para JSF. Dentro del bean creo una instancia de Clase A, pero luego no puedo invocar ninguno de los métodos en la clase A. Todos los campos son públicos y el alcance de los métodos también es público.Java no puede acceder a los métodos de clase desde la instancia de clase

Consideré que esto podría deberse a la naturaleza del bean (aunque no debería ser así), así que creé otra clase Tester.java y creé la instancia y todo salió bien. Pero cuando intento invocar los métodos, no aparece nada en la lista de sugerencias en Netbeans. Que esta pasando? Gracias,

Editar: el código:

public class Reservation { 
.... //setters & getters 

    public List<DateTime> getDateRange(DateTime start, DateTime end) { 
    ......//body of method 
    } 

    public TreeMap<DateTime, Integer> getDatesTreeMap(){ 
    //body of method 
    } 

    public boolean checkRange() { 
    ... body of method 
    } 

    }//end of class - no errors 

y así es como la clase instanciada:

Reservation booking = new Reservation(); 
booking. ????? this is where the suggestions don't come up 

Gracias

+2

Agregue el código del que está hablando. Obtendrás una respuesta mucho más rápido. – orien

+1

Probablemente tiene un error en el código que no nos está mostrando. –

+0

código que se muestra arriba. Todos los métodos de declinación con su alcance se muestran donde el cuerpo no es crítico para el problema, creo. –

Respuesta

8

Una conjetura (ya que todavía no está mostrando suficiente código para estar seguro, pero ...)

Es probable que intente llamar a métodos en la clase y fuera de un método o bloque de construcción. En otras palabras, este código:

Reservation booking = new Reservation(); 
booking. ????? this is where the suggestions don't come up 

es probable que llama en la sección de declaraciones de su clase, pero no en el interior de un bloque de método, un bloque constructor, u otra construcción similar. Solo las declaraciones de variables y su código de inicialización relacionado se pueden llamar aquí, pero otras declaraciones como los métodos de llamada en variables no pueden.

La solución: llame al código donde pertenece, en un método o bloque de construcción.

+0

Cool mate. Estúpido error, creo que lo pasé por alto por completo. Agradezco la ayuda :) –

+0

@sys_debug: genial, me alegra que lo hayas hecho funcionar. Pero la próxima vez, si es posible, muestre más información relevante desde el principio. Hubiéramos podido responder esto mucho más rápido si haces esto. –

Cuestiones relacionadas