2011-11-17 30 views
11

Estoy desarrollando una aplicación web, en la que hay un método de utilidad llamado getData() que hice como estático. Hasta ahora está bien, pero este método estático llamado getData() necesita algunos datos de setters y getters. Así que ahora mi pregunta es ¿podemos hacer que setter/getters sea estático?¿Se permiten setters/getters estáticos?

Respuesta

19

si sus propiedades son static continuación Getters and setters También habrá static .. es todo depende de ti ..

8

Los getters y setters pueden ser estáticos si obtienen/configuran campos estáticos.

0

Sí, los getters/setters se pueden hacer estáticos en función de sus necesidades. ¡O tal vez no entendí tu pregunta!

+3

No puede acceder a los campos de instancia desde métodos estáticos. – StKiller

7

sí se puede y que cualquiera que sea la clase de ese objeto/variable se define que se parece a

private static String abc = ""; 

y se puede acceder a este objeto mediante el método get/set

public static String getString(){ 
    return abc; 
} 

public static void setString(String newAbc){ 
    abc = newAbc; 
} 

y puede utilizar esto como esta manera Test.getString(); or Test.setString("new string");

también puede definir este método get/set como medio normal sin definir la palabra clave estática, pero para eso necesita crear la instancia de esa clase. Se usó el static para sin crear una instancia de la clase que puede acceder a su miembro.

0

Claro que puedes. Getter y setter son solo métodos normales. Pueden ser estáticos o no.

La única restricción es, no use el método y el método no estático en el método estático. Como el método estático y el archivado estático pertenecen a una clase, y el método y el campo no estáticos pertenecen al objeto. son dos niveles diferentes, creo.

0

No puede hacer que los métodos get y setter sean estáticos si usa atributos o propiedades que no son estáticos. Si usa IDEs como Eclipse y Netbeans, le advertirán sobre eso o incluso no le permitirán compilar el código.

4

Por supuesto, puede hacer getters y setters ser estáticos (con campos estáticos apropiados).

Pero: Como se trata de una aplicación web (múltiples solicitudes paralelas - múltiples hilos) que seguramente tienen un problema de rosca aquí - esto es no apta para subprocesos a menos que tome el cuidado de (por ejemplo, utilizar synchronized) .

+0

¿Qué tal un getter estático para recuperar un mapa? ¿Es necesario sincronizar esa única acción? – Amalgovinus

+0

Depende de si va a cambiar los datos del mapa. ¡Haz que el mapa sea definitivo y estarás bien! – kaiser

Cuestiones relacionadas