¿Hay alguna manera de generar automáticamente getters y setters en Eclipse?


256

Estoy trabajando en un nuevo Androidproyecto ( Java) y creé un objeto con una gran cantidad de variables. Como estoy planeando agregar captadores y establecedores para todos ellos, me preguntaba: ¿hay un atajo Eclipsepara generar automáticamente los captadores y establecedores en una clase determinada?


1
A mí me parece un acosador ... Solía ​​hacer toda la programación de Java sin un IDE, por lo que usar Eclipse todavía es relativamente nuevo para mí.
Phil

3
@krio: todo el mundo no usa Eclipse para desarrolladores de Java. Hice la mayor parte de mi trabajo en IntelliJ, y me encontré haciendo muchas preguntas como esta una vez que comencé a trabajar en Eclipse.
vcsjones

1
@ Phil, vcsjones: mis disculpas son muy ciertas, pero mira esto, google.com.au/… . Supongo que stackoverflow dice que la investigación es importante
TeaCupApp

2
es la forma más rápida: Ctrl + 3 ggas
dellasavia

1
@Konstantin que solo dice que evite usarlos en la misma clase, así que no llame this.getCount(), cuando solo puede hacer referencia this.mCount. Aunque puede ser una operación más costosa, es un enfoque más limpio para proporcionar acceso a variables de otros objetos a través de getters y setters.
Phil

Respuestas:


357

Abra el menú contextual (es decir, haga clic con el botón derecho) en la ventana del código fuente de la clase deseada. Luego seleccione el Sourcesubmenú; al seleccionar ese menú Generate Getters and Setters..., aparecerá una ventana del asistente.

Source -> Generate Getters and Setters...

Seleccione las variables para las que desea crear captadores y establecedores y haga clic OK.


Solo hay 'Generar comentario de elemento', no Getters y Setters. Estoy usando Eclipse 4.4.0, el complemento PDT instalado. Mientras tanto, esto se puede usar: mikeangstadt.name/projects/getter-setter-gen .
Xdg

Funciona muy bien en Eclipse Mars.2 Release (4.5.2). Gracias.
this.user3272243

¡Gracias por salvarme de un millón de años de tedio!
Jay Edwards

11
También puede acceder a este submenú con el atajo de teclado SHIFT+ ALT+ S, y luego abrir las opciones Generar captadores y configuradores presionando R.
Rosa

Es curioso cómo mi respuesta aquí se hizo tan popular, pero en estos días solo usaría Lombok , como lo señalan otros a continuación.
Hagai Cibulski el

70

En Eclipse Juno, de forma predeterminada, ALT + MAYÚS + S, R abre el cuadro de diálogo getter / setter. Tenga en cuenta que debe presionar las 4 teclas.


55
Puede omitir la parte SHIFT y simplemente hacer ALT + S, R también.
Jason Wheeler

2
No se puede dejar de lado SHIFTen Eclipse Kepler
yellavon

Puedes dejarlo SHIFTen Eclipse Oxygen.
Jake Reece

No se puede dejar de lado SHIFTen Eclipse 2018-12.
Neph


41

Todas las otras respuestas se centran solo en el nivel IDE, estas no son la forma más efectiva y elegante de generar captadores y establecedores. Si tiene decenas de atributos, los métodos getters y setters relevantes harán que su código de clase sea muy detallado.

La mejor manera que he usado para generar getters y setters automáticamente es usando anotaciones del proyecto lombok en su proyecto java , lombok.jar generará el método getter y setter cuando compile el código java.

Solo se enfoca en los atributos de clase / nombre y definición de variables, lombok hará el resto. Esto es fácil de mantener su código.

Por ejemplo, si desea agregar el método getter y setter para la agevariable, simplemente agregue dos anotaciones lombok:

@Getter @Setter 
public int age = 10;

Esto es igual a un código como ese:

private int age = 10;
public int getAge() {
    return age;
}
public void setAge(int age) {
    this.age = age;
}

Puede encontrar más detalles sobre lombok aquí: Proyecto Lombok


1
¡Eso es! ¡Muchas gracias! En realidad, su respuesta debe estar en la parte superior, ya que lombok es la única solución verdadera para evitar ver todo el código Java repetitivo que uno tendría que generar o escribir. ¡Gracias!
Stefan Endrullis

2
El Proyecto Lombok (o al menos la idea) debería ser parte de Java 11. Yo uso Kotlin para las clases de Pojo solo para escapar de la generación del setter: /
Wolf359

31

Formas de generar captadores y setters -

1) Presione Alt+ Shift+ S, luegoR
2) Haga clic con el botón derecho -> Fuente -> Generar captadores y configuradores
3) Vaya al menú Fuente -> Generar captadores y configuradores
4) Vaya al menú Windows -> Preferencias -> General -> Teclas (Escribir Generar Getters & Setters en el campo de texto)
5) Haga clic en la bombilla de error del campo -> crear getters & setters ...
6) Presione Ctrl+3 y escriba getters & setters en el campo de texto y luego seleccione la opción Generar Getters & Setters

si Mac OS presiona Alt + cmd + S, luego selecciona Getters & Setters


2
Creo que 1 es un poco más fácil de esta manera: 1) Presione Alt + Shift + S, luego R
Paco Abato

1
Presionar Ctrl-3 y directamente después escribir "getter" no se encuentra en la lista. Mucho más fácil de recordar que los accesos directos específicos, ya que esto funciona para cada comando, vista, etc.
Bananeweizen

@ Bananeweizen - Gracias
Deepak Gupta

11

Hacer clic con el botón derecho-> generar captadores y establecedores funciona bien, pero si desea crear un método abreviado de teclado en eclipse en Windows, puede seguir los siguientes pasos:

  1. Vaya a Ventana> Preferencias
  2. Vaya a General> Teclas
  3. Lista para "Asistencia rápida: crear captador / definidor para el campo"
  4. En el campo de texto "Enlace" a continuación, mantenga presionadas las teclas deseadas (en mi caso, uso ALT + MAYÚS + G)
  5. Presiona Aplicar y Ok
  6. Ahora en su editor de Java, seleccione el campo para el que desea crear métodos getter / setter y presione el acceso directo que configuró en el Paso 4. Presione ok en esta ventana para crear los métodos.

¡Espero que esto ayude!


9

Por supuesto.

Use Generar captadores y establecedores del menú Fuente o del menú contextual en un campo o tipo seleccionado, o una selección de texto en un tipo para abrir el cuadro de diálogo. El cuadro de diálogo Generar captadores y establecedores muestra captadores y establecedores para todos los campos del tipo seleccionado. Los métodos se agrupan por los campos del tipo.

Consulte la documentación de ayuda para obtener más información.


8

Si. Haga clic derecho en el código y verá un menú emergente; hay "Fuente", "Generar captadores y establecedores" y al lado puedes ver el acceso directo, que es Alt + Shift + S y R en mi sistema.

De manera similar, puede navegar a otros submenús en ese menú principal, al escribir el atajo apropiado irá directamente al submenú en lugar del menú contextual principal, y luego podrá elegir del menú o escribir otra letra para elegir de la lista.



7

Prefiero crear el campo privado primero

private String field;

Eclipse resaltará automáticamente la variable, colocando el cursor sobre su nueva variable, presione Ctrl + 1. Luego le dará el menú para Crear getter y setter.

Presiono Ctrl + 1 porque es un poco más inteligente sobre lo que creo que quieres después.


5

Presione Alt + Mayús + S + R ... y luego solo seleccione qué campos tiene para generar Getters o Setters o ambos


5
  • Para todas las variables ALT + MAYÚS + S Luego R y para seleccionar todas Presione ALT + A

  • Para el cursor de punto de variable única en la variable, presione CTRL + 1 y vaya a la segunda opción de sugerencias

Captura de pantalla


Gracias, esto es lo que estaba buscando.
Shams Nahid

4

Hay un jar de código abierto disponible conocido como Lombok , simplemente agrega jar y luego anota tu POJO con @Getter & @Setter , creará getters y setters automáticamente.

Además de esto, podemos usar otras características como @ToString , @EqualsAndHashCode y otras cosas interesantes que eliminan el código vainilla de su aplicación



3

** En Eclipse Ide

para generar tanto setters como getters -> alt + shift + s + r luego Alt A y luego haga clic en ok;

para generar solo getters -> alt + shift + s + r luego presione g y luego haga clic en el botón ok;

para generar solo setters -> alt + shift + s + r luego presione l luego haga clic en el botón ok; **


2

Haga clic derecho en la propiedad para la que desea generar el captador y definidores y elija

Source -> Generate Getters and Setters...

2

1) Vaya a Windows-> Preferencias-> General-> Teclas

2) Seleccione command" Generar captadores y establecedores "

3) En el Binding, presiona el atajo para usar (como Alt + Shift + G )

4) Haz clic en Aplicar y listo.


1
  1. Abra el archivo de clase en Eclipse
  2. Haga doble clic en el nombre de la clase o resáltelo
  3. Luego navegue a Fuente -> Insertar código
  4. Haga clic en Getter y Setter

Abre una ventana emergente para seleccionar los campos para los que se generarán los métodos getter / setter. Seleccione los campos y haga clic en el botón "Generar". ingrese la descripción de la imagen aquíingrese la descripción de la imagen aquí


1

Usa el Proyecto Lombok o mejor Kotlin para tus Pojos.

(Además, para agregar Kotlin a tu currículum;))

Esta :

public class BaseVO {
    protected Long id;

    @Override
    public boolean equals(Object obj) {
        if (obj == null || id == null)
            return false;

        if (obj instanceof BaseVO)
            return ((BaseVO) obj).getId().equals(id);

        return false; 
    }

    @Override
    public int hashCode() {
        return id == null ? null : id.hashCode();
    }
    // getter setter here
}

public class Subclass extends BaseVO {
    protected String name;
    protected String category;
    // getter setter here
}

se convertiría en esto:

open class BaseVO(var id: Long? = null) {

    override fun hashCode(): Int {
        if (id != null)
            return id.hashCode()

        return super.hashCode()
    }

    override fun equals(other: Any?): Boolean {
        if (id == null || other == null || other !is BaseVO)
            return false

        return id.hashCode() == other.id?.hashCode()
    }
}

@Suppress("unused")
class Subclass(
        var name: String? = null,
        var category: String? = null
) : BaseVO()

O use las clases de "datos" de Kotlin. Terminas escribiendo incluso menos líneas de código.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.