JEP 289

GPTKB entity

Statements (74)
Predicate Object
gptkbp:instance_of gptkb:Java_Enhancement_Proposal
gptkbp:bfsLayer 5
gptkbp:bfsParent gptkb:JEP_352
gptkb:JEP_367
gptkb:JEP_430
gptkbp:author gptkb:Javac_Team
gptkbp:benefits Reduces the need for constant values to be hardcoded.
gptkbp:created 2019-12-16
gptkbp:discusses Open JDK mailing list.
https://openjdk.java.net/jeps/289
gptkbp:effective_date Java SE 12.
gptkbp:example sealed interface Shape permits Circle, Square;
class A permits B, C; class B extends A; class C extends A;
Dynamic constants in lambda expressions.
gptkbp:feedback Positive feedback from developers.
gptkbp:future_plans Potential enhancements.
https://www.w3.org/2000/01/rdf-schema#label JEP 289
gptkbp:impact Tooling support.
Compiler support.
Language feature.
Runtime support.
Improves performance and flexibility of the Java language.
gptkbp:is_adopted_by Widely adopted in JDK 12.
gptkbp:is_compatible_with Maintains backward compatibility.
gptkbp:is_described_as Enhances the instanceof operator to allow pattern matching.
Introduces sealed classes and interfaces to restrict which classes can extend or implement them.
Introduces dynamic constants in class files.
gptkbp:is_implemented_in gptkb:video_game
Implemented in the Java language.
Completed.
Requires JVM changes.
gptkbp:is_motivated_by Improve the modeling of hierarchies.
Enhance the expressiveness of the Java language.
gptkbp:is_tested_for Extensive testing required.
gptkbp:key Enhances pattern matching capabilities.
Sealed classes allow control over class inheritance.
Improves maintainability of code.
Supports better API design.
Provides a way to define a restricted class hierarchy.
Dynamic resolution of constants.
gptkbp:notable_recipients Various Java developers.
gptkbp:performance Improves runtime performance.
gptkbp:plot_summary Dynamic Class-File Constants enhance Java's capabilities.
gptkbp:proposed_by gptkb:Brian_Goetz
gptkb:JDK_12
gptkbp:regulatory_compliance Must conform to the Java Language Specification.
gptkbp:related_concept Java SE Platform.
gptkbp:related_jeps gptkb:JEP_411
gptkb:JEP_360
gptkb:JEP_220
gptkbp:related_to Constant Pool
gptkbp:release_date March 2019.
gptkbp:released gptkb:Java_16
gptkb:JDK_12
gptkbp:security_features No new security risks introduced.
gptkbp:specifies Defines how dynamic constants are represented.
gptkbp:status gptkb:Final
Standard Feature
gptkbp:target_audience Java developers.
gptkbp:targets gptkb:Java_SE_16
gptkb:JDK_15
gptkbp:technology Java Class File Format.
gptkbp:title gptkb:Pattern_Matching_for_instanceof
gptkb:Sealed_Classes
Dynamic Class-File Constants
gptkbp:updates 2021-03-16
gptkbp:use_case Dynamic language features.
gptkbp:user_reviews gptkb:Gilad_Bracha
gptkb:Brian_Goetz
gptkb:Venkat_Subramaniam
gptkb:software_framework
gptkb:Mark_Reinhold
gptkb:Jesse_Glick
Community review.