Java Boilerplate
Analisa uma classe Java e gera automaticamente todos os métodos boilerplate necessários.
Uso
/java-boilerplate # Gera getters e setters para todos os campos
/java-boilerplate --construtor # Inclui construtor com todos os campos
/java-boilerplate --completo # Gera tudo: getters, setters, construtores, toString, equals e hashCode
/java-boilerplate --lombok # Sugere as annotations Lombok equivalentes
O que ela faz
- Passo 1: Lê a classe Java fornecida e identifica todos os atributos (campos) declarados, seus tipos e modificadores de acesso.
- Passo 2: Gera os métodos
get e set para cada campo não-final, seguindo as convenções JavaBeans (ex: getNome(), setNome(String nome)).
- Passo 3: Se solicitado, gera o construtor padrão (sem argumentos) e o construtor completo (com todos os campos).
- Passo 4: Se solicitado com
--completo, gera também toString() formatado, equals() e hashCode() baseados nos campos da classe.
- Passo 5: Retorna o código pronto para ser colado na classe, organizado na ordem convencional Java: construtores → getters/setters → toString → equals → hashCode.
- Passo 6 (opcional): Com
--lombok, exibe as annotations equivalentes (@Getter, @Setter, @Data, etc.) como alternativa mais enxuta.
Exemplo
Prompt:
/java-boilerplate --completo
public class Produto {
private Long id;
private String nome;
private Double preco;
private Integer estoque;
}
O Claude vai:
- Identificar os campos:
id (Long), nome (String), preco (Double), estoque (Integer)
- Gerar construtor padrão e construtor completo
- Gerar
getId(), setId(), getNome(), setNome(), getPreco(), setPreco(), getEstoque(), setEstoque()
- Gerar
toString() com todos os campos
- Gerar
equals() e hashCode() baseados no id
- Entregar o código completo pronto para uso:
// Construtor padrão
public Produto() {}
// Construtor completo
public Produto(Long id, String nome, Double preco, Integer estoque) {
this.id = id;
this.nome = nome;
this.preco = preco;
this.estoque = estoque;
}
// Getters e Setters
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getNome() { return nome; }
public void setNome(String nome) { this.nome = nome; }
public Double getPreco() { return preco; }
public void setPreco(Double preco) { this.preco = preco; }
public Integer getEstoque() { return estoque; }
public void setEstoque(Integer estoque) { this.estoque = estoque; }
// toString
@Override
public String toString() {
return "Produto{" +
"id=" + id +
", nome='" + nome + ''' +
", preco=" + preco +
", estoque=" + estoque +
'}';
}
// equals e hashCode
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Produto produto = (Produto) o;
return Objects.equals(id, produto.id);
}
@Override
public int hashCode() {
return Objects.hash(id);
}
Regras e convenções seguidas
- Nomes de métodos seguem o padrão JavaBeans (
get/set + nome com inicial maiúscula)
- Campos do tipo
boolean usam prefixo is no getter (ex: isAtivo())
- Campos
final recebem apenas getter, sem setter
equals e hashCode são gerados preferencialmente com base no campo id ou na chave natural da entidade
- O código gerado é compatível com Java 8+
- Imports necessários (como
java.util.Objects) são incluídos quando necessário
1---2name: java-boilerplate3description: Gera automaticamente getters, setters, construtores, toString, equals e hashCode para classes Java. Triggers on: /java-boilerplate, 'gerar métodos java', 'criar getters setters'.4---56# Java Boilerplate78Analisa uma classe Java e gera automaticamente todos os métodos boilerplate necessários.910---1112## Uso1314```15/java-boilerplate # Gera getters e setters para todos os campos16/java-boilerplate --construtor # Inclui construtor com todos os campos17/java-boilerplate --completo # Gera tudo: getters, setters, construtores, toString, equals e hashCode18/java-boilerplate --lombok # Sugere as annotations Lombok equivalentes19```2021## O que ela faz2223- **Passo 1:** Lê a classe Java fornecida e identifica todos os atributos (campos) declarados, seus tipos e modificadores de acesso.24- **Passo 2:** Gera os métodos `get` e `set` para cada campo não-final, seguindo as convenções JavaBeans (ex: `getNome()`, `setNome(String nome)`).25- **Passo 3:** Se solicitado, gera o construtor padrão (sem argumentos) e o construtor completo (com todos os campos).26- **Passo 4:** Se solicitado com `--completo`, gera também `toString()` formatado, `equals()` e `hashCode()` baseados nos campos da classe.27- **Passo 5:** Retorna o código pronto para ser colado na classe, organizado na ordem convencional Java: construtores → getters/setters → toString → equals → hashCode.28- **Passo 6 (opcional):** Com `--lombok`, exibe as annotations equivalentes (`@Getter`, `@Setter`, `@Data`, etc.) como alternativa mais enxuta.2930---3132## Exemplo3334**Prompt:**35> /java-boilerplate --completo36>37> ```java38> public class Produto {39> private Long id;40> private String nome;41> private Double preco;42> private Integer estoque;43> }44> ```4546**O Claude vai:**47481. Identificar os campos: `id` (Long), `nome` (String), `preco` (Double), `estoque` (Integer)492. Gerar construtor padrão e construtor completo503. Gerar `getId()`, `setId()`, `getNome()`, `setNome()`, `getPreco()`, `setPreco()`, `getEstoque()`, `setEstoque()`514. Gerar `toString()` com todos os campos525. Gerar `equals()` e `hashCode()` baseados no `id`536. Entregar o código completo pronto para uso:5455```java56// Construtor padrão57public Produto() {}5859// Construtor completo60public Produto(Long id, String nome, Double preco, Integer estoque) {61 this.id = id;62 this.nome = nome;63 this.preco = preco;64 this.estoque = estoque;65}6667// Getters e Setters68public Long getId() { return id; }69public void setId(Long id) { this.id = id; }7071public String getNome() { return nome; }72public void setNome(String nome) { this.nome = nome; }7374public Double getPreco() { return preco; }75public void setPreco(Double preco) { this.preco = preco; }7677public Integer getEstoque() { return estoque; }78public void setEstoque(Integer estoque) { this.estoque = estoque; }7980// toString81@Override82public String toString() {83 return "Produto{" +84 "id=" + id +85 ", nome='" + nome + ''' +86 ", preco=" + preco +87 ", estoque=" + estoque +88 '}';89}9091// equals e hashCode92@Override93public boolean equals(Object o) {94 if (this == o) return true;95 if (o == null || getClass() != o.getClass()) return false;96 Produto produto = (Produto) o;97 return Objects.equals(id, produto.id);98}99100@Override101public int hashCode() {102 return Objects.hash(id);103}104```105106---107108## Regras e convenções seguidas109110- Nomes de métodos seguem o padrão **JavaBeans** (`get`/`set` + nome com inicial maiúscula)111- Campos do tipo `boolean` usam prefixo `is` no getter (ex: `isAtivo()`)112- Campos `final` recebem apenas getter, sem setter113- `equals` e `hashCode` são gerados preferencialmente com base no campo `id` ou na chave natural da entidade114- O código gerado é compatível com **Java 8+**115- Imports necessários (como `java.util.Objects`) são incluídos quando necessário