@Immutable annotation for value classes
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
Piste de recherche
L’issue ne nomme aucun fichier source ni chemin de test ; commencez par examiner les définitions d’annotations existantes du dépôt et leurs conventions. La tâche est terminée lorsqu’une annotation @Immutable équivalente, avec une sémantique d’immutabilité documentée et des métadonnées appropriées de type, de rétention et de documentation, a été ajoutée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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 {
}
- Langage dominant
- Kotlin
- Étoiles
- 465
- Forks
- 73
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de JetBrains/java-annotations
-
@TestOnly should be allowed for ElementType.PACKAGEPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
JetBrains/java-annotations#123 ·
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
JetBrains/java-annotations#134 · 6 commentaires · 1 réaction ·
-
Add AndroidTarget as KMP targetPeut-être à nouveau libre @serjsysoev l’a pris il y a 524 jours, et aucune pull request n’est ouverte. Ouverte
JetBrains/java-annotations#125 · 1 réaction · 1 personne assignée ·
-
Double/float range annotationOuverte
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
JetBrains/java-annotations#122 · 2 commentaires ·
-
Allow use of @Language on (formatted-)string literalsPeut-être à nouveau libre @serjsysoev l’a pris il y a 700 jours, et aucune pull request n’est ouverte. Ouverte
JetBrains/java-annotations#117 · 4 commentaires · 1 personne assignée ·
Toutes les issues de JetBrains/java-annotations
Issues similaires
-
Dev
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
ankidroid/Anki-Android#22555 ·
Les mainteneurs répondent en général sous 1 jour
-
Good first issue: add kotlin-spring-boot stack budget preset (Kotlin + Spring Boot 3 + Gradle)Ouverteenhancement good first issue help wanted
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
core: RAC_LLM_OPTIONS_DEFAULT.min_p disagrees with the IDL's annotated defaultPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouvertebug core p3
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
RunanywhereAI/runanywhere-sdks#1083 ·
Les mainteneurs répondent en général sous 5 jours
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Les mainteneurs répondent en général sous 1 jour
-
Java and Kotlin (JVM): parse gradle/wrapper/gradle-wrapper.properties with exact line locationsOuvertearea: detector eco: java help wanted lane: free-agent roadmap size: S type: parser
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
arminazimi/evergreen#355 ·
Les mainteneurs répondent en général sous 1 jour