Foros del Web » Programación para mayores de 30 ;) » Java »

Llamar a un metodo public static void desde un public vod

Estas en el tema de Llamar a un metodo public static void desde un public vod en el foro de Java en Foros del Web. Buenas, Tengo que guarda en un vector un elemento enviado desde otra clase. Este vector se crea para cada Author. Para poder guardar en el ...
  #1 (permalink)  
Antiguo 23/10/2015, 10:56
 
Fecha de Ingreso: octubre-2015
Mensajes: 1
Antigüedad: 9 años, 1 mes
Puntos: 0
Llamar a un metodo public static void desde un public vod

Buenas,

Tengo que guarda en un vector un elemento enviado desde otra clase. Este vector se crea para cada Author. Para poder guardar en el vector he creado la clase public static void. Existe un vector para cada argumento creado.

Cada vector lo creo asi: private Vector <Material>materials = new Vector();

Me indica Cannot make static to the non-static method addMaterial1 from the type Author.

Como puedo llamar a este metodo desde otro metodo public void?

public static void addMaterial(Material a){

tipo=a;
addMaterial1();
}
public void addMaterial1(){
boolean repetido=false;

for (int i=0; i< materials.size();i++){
Material deptExtraido =materials.elementAt(i);
materials.addElement(tipo);

Última edición por rsf89bcn; 23/10/2015 a las 11:01
  #2 (permalink)  
Antiguo 23/10/2015, 11:10
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: Llamar a un metodo public static void desde un public vod

Hola:

cuando un método no es static, necesitas tener una instancia de la clase para poder llamarlo (un new). Puedes hacer esto

Código Java:
Ver original
  1. public static void addMaterial(Material a){
  2.  
  3. tipo=a;
  4. TuClase variable = new TuClase(....);
  5. tuClase.addMaterial1();
  6. }

Ojo, no tienes que hacer un new cada vez que quieras usar el método. Normalmente una clase suele tener una serie de atributos (o variables de clase como quieras llamarlos) que tienen un valor y son los que dan sentido a que se instancie esa clase. Por ejemplo

Código Java:
Ver original
  1. public class Persona {
  2.     private String nombre;
  3.     public void unMetodo(...) {
  4.          ....
  5.     }
  6.     ...
  7. }

tiene sentido hacer un new de Persona para "Pedro", otro para "Juan", etc. No se hace un new Persona() para poder llamar a unMetodo(). Se hace el new Persona porque existe "Felipse" y luego llamas al metodo de "Pedro", de "Juan" o de "Felipe", según te interese.

Si tu clase no tiene atributo ninguno (nombre en el caso de Persona), puedes hacer todos los métodos static y ahorrarte los new.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: clase, metodo, public, static, void
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:23.