@Immutable annotation for value classes
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
El issue no nombra ningún archivo fuente ni ruta de pruebas; empieza revisando las definiciones de anotaciones existentes del repositorio y sus convenciones. La tarea estará terminada cuando se añada una anotación @Immutable equivalente, con semántica de inmutabilidad documentada y metadatos apropiados de tipo, retención y documentación.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hi!
I am currently migrating a projeect from jsr305 to java-annotations. One of the annotations I can't really seem to find an equivalent for is @Immutable. A class being @Immutable should not have setters and possibly not even non-final fields.
The original implementation and documentation:
/**
* The class to which this annotation is applied is immutable. This means that
* its state cannot be seen to change by callers. Of necessity this means that
* all public fields are final, and that all public final reference fields refer
* to other immutable objects, and that methods do not publish references to any
* internal state which is mutable by implementation even if not by design.
* Immutable objects may still have internal mutable state for purposes of
* performance optimization; some state variables may be lazily computed, so
* long as they are computed from immutable state and that callers cannot tell
* the difference.
* <p>
* Immutable objects are inherently thread-safe; they may be passed between
* threads or published without synchronization.
*/
@Documented
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.CLASS)
public @interface Immutable {
}
- Lenguaje dominante
- Kotlin
- Estrellas
- 464
- Forks
- 74
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de JetBrains/java-annotations
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
JetBrains/java-annotations#123 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
JetBrains/java-annotations#134 · 6 comentarios · 1 reacción ·
-
Add AndroidTarget as KMP targetQuizá libre de nuevo @serjsysoev la tomó hace 512 días y no hay ningún pull request abierto. Abierto
JetBrains/java-annotations#125 · 1 reacción · 1 asignado ·
-
Double/float range annotationAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
JetBrains/java-annotations#122 · 2 comentarios ·
-
Allow use of @Language on (formatted-)string literalsQuizá libre de nuevo @serjsysoev la tomó hace 687 días y no hay ningún pull request abierto. Abierto
JetBrains/java-annotations#117 · 4 comentarios · 1 asignado ·
Todos los issues de JetBrains/java-annotations
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
home-assistant/android#7561 ·
Los mantenedores suelen responder en 1 día
-
contributor: external needs review
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
fwcd/tree-sitter-kotlin#289 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
navikt/syfo-oppfolgingsplan-backend#482 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100