JEP 397

GPTKB entity

Statements (777)
Predicate Object
gptkbp:instance_of gptkb:Java_2_Platform
gptkb:JEP
gptkbp:adapted_into Aligned with Java's performance goals.
gptkbp:addresses memory management issues
testing challenges
Type casting issues
gptkbp:adds new testing features
gptkbp:advances Java testing methodologies
gptkbp:affects Java developers
gptkbp:aims_to enhance performance monitoring
simplify testing process
Improve the expressiveness of the Java programming language
gptkbp:aims_to_improve test reliability
application throughput
gptkbp:analysis Supports data visualization.
gptkbp:approves March 2020
March 2021
gptkbp:author gptkb:Alan_Bateman
gptkb:Brian_Goetz
gptkb:Javac_Team
gptkb:Mark_Reinhold
JDK Team
JEP Committee
JDK Release Team
Mark Reinhold.
gptkbp:benefits Improves code readability.
Successful implementation in JDK 17.
Improves maintainability and readability of code.
Improved application responsiveness.
Facilitates better API design.
Allows for more controlled inheritance.
Enables exhaustive pattern matching.
Reduces the risk of unwanted subclassing.
Simplifies complex conditional logic.
Improved observability of Java applications.
Reduced latency during garbage collection.
Better control over class hierarchies.
Enhanced type safety.
Achieved key performance improvements.
Allows for more controlled type hierarchies.
gptkbp:category Core.
gptkbp:cause To reduce complexity in the JDK.
gptkbp:challenges Complexity in implementation.
Complexity of concurrent processing.
Requires careful design of class hierarchies.
gptkbp:client JFR clients
gptkbp:collaborated_with Java community projects
Java performance teams
Java performance initiatives
gptkbp:collaboration Involves multiple contributors.
gptkbp:collaborative_projects Involves multiple stakeholders.
gptkbp:collection Efficient data collection.
gptkbp:commit_date 2021-07-01
gptkbp:community Active user community.
Java Community Process.
gptkbp:community_engagement Ongoing.
Encourages community engagement.
Engaged with the developer community.
Engaged with the Java community.
Active discussions on enhancements.
gptkbp:community_feedback Positive.
Supportive.
Incorporated community feedback.
Positive feedback from the Java community.
Gathered from Java community.
Incorporated into the proposal.
Addressed concerns about complexity.
Encouraged by industry adoption.
Received positive responses for type safety.
Positive feedback from Java community.
gptkbp:community_impact Encourages migration to newer technologies.
Significant contributions to Java ecosystem.
gptkbp:community_involvement High.
Involvement from various stakeholders.
Involvement from various Java user groups.
gptkbp:community_support Strong community support.
Strong.
Active community support.
Strong support from the Java community.
Strong support from Java developers.
Strong backing from Java community.
gptkbp:compatibility Backward compatible with existing Java code.
Backward compatible with existing switch.
Backward compatible.
Maintains backward compatibility.
Backward compatible with existing interfaces.
Backward compatibility will be affected for JMX users.
gptkbp:concluded_on September 2021
Encourages better software design.
Enhances the Java programming experience.
Sealed classes provide a powerful tool for developers.
Sealed interfaces provide a powerful tool for type safety.
gptkbp:configuration JFR configuration options
gptkbp:conformance Follows Java SE specifications.
Conforms to Java language standards.
Must declare permitted subclasses.
Can be used with enums.
Can be used with interfaces.
Can be used with records.
Must conform to the rules of sealed classes.
Cannot be subclassed outside of permitted subclasses.
Aligns with modern development practices.
Conforms to JDK standards.
gptkbp:consequences Encourages use of Jakarta EE
Encourages use of alternative libraries
Code using these modules will need to be updated.
gptkbp:contains Multiple examples provided in the proposal.
gptkbp:contributes_to Java performance tuning
Performance improvements in Java applications.
gptkbp:contribution Improves maintainability.
Contributed by the Open JDK community.
Significant contribution to Java language.
Contribution guidelines available.
Contributed to Java's evolution.
Streamlines the JDK.
Contributes to the Java language's evolution.
gptkbp:created 2021-09-15
2020-06-08
2020-03-17
gptkbp:data_type JFR binary format
gptkbp:dependency None.
Depends on JFR.
gptkbp:describes gptkb:Pattern_Matching_for_instanceof
gptkb:Sealed_Classes
gptkb:JFR:_Event_Streaming
New Testing Enhancements in JDK 11
JDK 14 Support
performance changes in JDK 14
gptkbp:description Introduces sealed classes and interfaces to restrict which classes can extend or implement them.
Enhances the switch statement to allow pattern matching.
Introduces sealed interfaces to the Java programming language.
Introduces sealed classes and interfaces.
Introduces sealed interfaces to restrict which classes can implement them.
This JEP proposes the addition of sealed interfaces to the Java programming language.
Enhances ZGC to process thread stacks concurrently.
This JEP proposes the removal of the Java Management Extensions (JMX) modules from the JDK.
This JEP proposes to deprecate the Java EE and CORBA modules for removal.
Provides a standard mechanism for streaming JFR events.
gptkbp:development Java language team.
gptkbp:discusses https://openjdk.java.net/jeps/397
Active discussions in Java forums.
Open JDK mailing list
Open JDK mailing lists.
Discussed in Open JDK mailing lists.
Security policies in Java.
JEP 397 was discussed in the Open JDK mailing lists.
gptkbp:ecological_role Enhances Java's garbage collection capabilities.
gptkbp:education Rapid user adoption.
Growing among Java developers.
gptkbp:educational_resources Tutorials available online.
gptkbp:educational_value Used in educational materials.
Aids in learning Java.
gptkbp:effective_date 2021-09-14
2021-07-01.
gptkbp:enables Type-safe casting
gptkbp:encourages best practices in testing
gptkbp:end_date 2022-03-22
2021-07-01.
gptkbp:enhances gptkb:Java_programming_language
Type inference
test performance
Planned future enhancements.
Potential for more pattern types.
JIT compiler performance
Enhances existing switch functionality.
Potential for further stack processing optimizations.
gptkbp:enhances_compatibility_with existing testing frameworks
gptkbp:evaluates Measured in latency reduction.
gptkbp:event_aggregation Event aggregation features.
gptkbp:event_challenges Challenges in event streaming.
gptkbp:event_filtering Event filtering capabilities.
gptkbp:event_storage Event storage options.
gptkbp:event_streaming_benefits Benefits of event streaming.
gptkbp:event_streaming_solutions Solutions for event streaming challenges.
gptkbp:event_streaming_use_cases Various use cases for event streaming.
gptkbp:event_type Multiple event types supported.
Various JFR event types
gptkbp:example switch (obj) { case String s -> ...; }
Combining with records.
Defining a sealed class hierarchy.
Pattern matching with sealed types.
Using permits to specify subclasses.
Example of sealed interface usage in Java.
sealed class Shape permits Circle, Square.
Defining a sealed class with permitted subclasses.
non-sealed class Admin.
non-sealed class Alert.
non-sealed class Circle.
non-sealed class Dog.
non-sealed class RGB.
non-sealed class Report.
non-sealed class Savings Account.
non-sealed class Sphere.
permits class Brightness Filter.
permits class CMYK.
permits class Car.
permits class Cat.
permits class Checking Account.
permits class Click Event.
permits class Contrast Filter.
permits class Credit Card.
permits class Cube.
permits class Email Task.
permits class Guest.
permits class Hover Event.
permits class Invoice.
permits class Pay Pal.
permits class Rectangle.
permits class Reminder.
permits class Sms Task.
permits class Square.
permits class Start Command.
permits class Stop Command.
permits class Triangle.
permits class Truck.
sealed class Account.
sealed class Animal.
sealed class Color.
sealed class Document.
sealed class Notification.
sealed class Shape.
sealed class Shape3 D.
sealed class User.
sealed interface Command.
sealed interface Event.
sealed interface Filter.
sealed interface Payment.
sealed interface Shape.
sealed interface Task.
sealed interface Vehicle.
Defining a sealed interface with permitted implementations.
Used in defining a restricted set of implementations.
Real-time application monitoring.
sealed interface Drawable permits Circle, Square.
class A permits B, C; class B extends A; class C extends A.
interface I permits X, Y; class X implements I; class Y implements I.
Used in defining a hierarchy of types.
final class App Notification.
final class Force Restart Command.
final class International Transfer.
final class Mountain Bike.
final class Premium Account.
final class Scheduled Task.
final class Temporary User.
final class Triangle.
non-sealed class Admin User.
non-sealed class Car.
non-sealed class Credit Card Payment.
non-sealed class Email Notification.
non-sealed class Email Task.
non-sealed class Start Command.
permits class Pay Pal Payment.
permits class Regular User.
sealed class Bank Transfer.
sealed class Bicycle.
sealed class Credit Account.
sealed class Guest User.
sealed class Polygon.
sealed class Push Notification.
sealed class Push Task.
sealed class Restart Command.
sealed interface Account.
sealed interface Notification.
sealed interface User.
permits class SMSAlert Task.
permits class SMSNotification.
gptkbp:exemplifies Code readability
gptkbp:exported_to Data export capabilities.
gptkbp:facilitates automated testing
gptkbp:features Sealed classes.
Pattern Matching, Records.
gptkbp:feedback Community feedback encouraged.
Community feedback was positive.
gptkbp:feedback_mechanism Community forums.
Open JDK mailing lists.
Open for community feedback.
Continuous improvement based on user feedback.
gptkbp:final_implementation_date 2021-07-01.
gptkbp:final_review_outcome Positive.
gptkbp:first_published 2021-07-01.
gptkbp:focuses_on performance improvements
gptkbp:formulation switch (var) { case Type t -> ...; }
sealed interface Interface Name permits Implementation1, Implementation2.
sealed class Class Name permits Sub Class1, Sub Class2.
gptkbp:future_plans Exploration of new patterns.
Monitor and evaluate.
Monitor usage and consider further removals.
Prepare for removal in future JDK versions.
Further refinements in future JDKs.
gptkbp:future_prospects Further enhancements to pattern matching.
Further optimizations planned.
Monitor usage of Java EE and CORBA.
Consider enhancements based on usage.
Evaluate feedback from preview.
Finalize the feature for a future release.
Enhancements to event types.
Potential enhancements to sealed types.
Assess integration with other language features.
Consider enhancements based on user feedback.
Evaluate the impact on existing codebases.
Explore additional features for sealed types.
Investigate performance implications.
Explore further enhancements to sealed types.
Exploration of future possibilities.
Research on advanced pattern matching.
gptkbp:goal Enable real-time monitoring of Java applications.
Make switch statements more expressive.
gptkbp:has_community Java Enhancement Proposals mailing list.
gptkbp:has_documentation Available for developers.
Comprehensive user documentation.
Available on Open JDK website.
Comprehensive and accessible.
Available in the JDK documentation.
Detailed in JDK 17 documentation.
gptkbp:has_goal Minimize GC pause times.
gptkbp:has_version Updated in JDK 17.
gptkbp:historical_achievement Achieved in 2021.
Java development history
gptkbp:historical_period Future JDK versions.
Future JDK releases.
https://www.w3.org/2000/01/rdf-schema#label JEP 397
gptkbp:impact Performance monitoring
Enhances the expressiveness of the Java language.
Improves code readability and maintainability.
Improves type safety.
Minimal impact expected.
Minimal.
Low risk.
Significant on Java performance.
Simplifies the JDK
Improved application performance.
Improves maintainability and readability of code.
Allows for more controlled hierarchies in type systems.
Applications relying on the Security Manager.
Improves pause times for garbage collection.
Simplifies type checks and casts
Enhances type safety and maintainability.
Language and libraries.
Changes how inheritance is handled.
Minimal disruption.
Removes legacy modules from the JDK.
Users must migrate away from deprecated modules.
Applications that rely on JMX will need to find alternatives.
Allows for more controlled hierarchies.
gptkbp:impact_on_code Reduces boilerplate code.
gptkbp:impact_on_codebases Affects existing codebases.
gptkbp:impact_on_java Strengthens Java's performance capabilities.
gptkbp:impact_on_standards Influences Java standards.
gptkbp:impact_on_syntax Changes syntax for better clarity.
gptkbp:implementation_link https://openjdk.java.net/jeps/397# Implementation
gptkbp:implementation_overview Concurrent processing of thread stacks.
gptkbp:implementation_review Completed.
gptkbp:implementation_review_date 2021-06-30.
gptkbp:improves Type checking
Code conciseness
JUnit 5 support
gptkbp:includes new assertions
Garbage Collector enhancements
Specification of sealed classes
gptkbp:includes_improvements_for performance testing
gptkbp:influenced_by gptkb:JEP_326
gptkbp:initial_proposal Proposed in 2020.
gptkbp:integrates_with CI/ CD pipelines
gptkbp:integration Integrates with existing tools.
gptkbp:introduced_in gptkb:Java_SE_17
gptkb:Java_SE_14
gptkb:JDK_11
gptkb:JDK_15
gptkb:Java_17
gptkbp:involved_technology gptkb:Java_Virtual_Machine_(JVM)
Jakarta EE.
Java SE.
gptkbp:involves new optimizations
gptkbp:is_a_framework_for unit testing
behavior-driven development
Influences Java frameworks.
gptkbp:is_a_guide_for writing tests in Java
gptkbp:is_a_reference_for test case design
gptkbp:is_a_resource_for test automation
Resources available for the community.
Tutorials and guides available.
gptkbp:is_a_tool_for integration testing
mocking and stubbing
gptkbp:is_adopted_by gptkb:Open_JDK
enterprise applications
open-source projects
Enterprise applications
Widely adopted in modern Java applications.
Low.
Widely adopted in the industry.
High adoption rate.
Adopted in JDK 17.
High among Java developers.
Java developers community
Some resistance from legacy codebases.
Adopted by Java developers.
Increasing among enterprise applications.
Migration from older GC implementations.
Used in large-scale enterprise applications.
gptkbp:is_aimed_at enterprise applications
gptkbp:is_aligned_with modern software development practices
gptkbp:is_analyzed_in performance analysts
Technical papers
system architects
performance engineers
performance consultants
gptkbp:is_available_in JDK 11 and later versions
gptkbp:is_cited_in Java documentation
Java performance literature
gptkbp:is_compatible_with Java 8 and later
Previous Java versions
gptkbp:is_described_as Java Tutorials
Java experts
Java tutorials
developer blogs
Java performance guides
gptkbp:is_discussed_in gptkb:Java_Community_Process
Java meetups
Java user groups
Java community forums
Java forums
Java webinars
gptkbp:is_documented_in release notes
technical specifications
JDK documentation
JDK 15 Release Notes
Java documentation team
JDK Enhancement-Proposal documentation
JEP 397 specification
gptkbp:is_essential_for quality assurance
gptkbp:is_evaluated_by performance assessments
performance reviews
software engineers
performance testing environments
gptkbp:is_explored_in gptkb:Java_conferences
gptkbp:is_implemented_in gptkb:JDK_17
gptkb:JDK_15_Compiler
gptkb:Java_Development_Kit_(JDK)
gptkb:Open_JDK
Concurrent processing of thread stacks.
JDK Enhancement-Proposal
Final.
Java.
Completed.
Ensuring thread safety.
Implemented in JDK 17.
Java 17 and later versions
Part of the Java language.
JDK 21.
Concurrent stack processing.
Details available in the JEP document.
JDK 15 Source Code
Addressed various implementation challenges.
Deprecation in JDK 21.
The implementation involves removing the JMX modules from the JDK.
Detailed implementation notes provided.
Utilizes a concurrent approach for stack processing.
gptkbp:is_influenced_by User feedback
industry trends
user feedback
community feedback
Other programming languages
previous JEPs
gptkbp:is_integrated_with Java development tools
gptkbp:is_monitored_by Compatible with monitoring tools.
Enhanced monitoring capabilities.
gptkbp:is_motivated_by Reduce the size of the JDK
To simplify the JDK and remove outdated technologies.
Control the inheritance of classes.
Improve the modeling of hierarchies.
Enhance the expressiveness of the type system.
Security Manager is rarely used.
To provide a more declarative way to restrict the classes that can implement an interface.
Improve the modeling of class hierarchies.
JMX is rarely used in modern applications.
gptkbp:is_part_of gptkb:Java_SE_11
gptkb:Java_2_Platform
gptkb:Java_SE_platform
gptkb:JDK_11
gptkb:Java_SE_15
Java language evolution
Java 17 features
Java performance improvements
Java SE 14 release
Java performance strategy
gptkbp:is_promoted_by gptkb:Java_conferences
gptkb:Oracle
Java advocates
Java influencers
gptkbp:is_promoted_through Java blogs
gptkbp:is_recognized_by gptkb:Java_community
gptkbp:is_recognized_for enhancing developer productivity
gptkbp:is_referenced_in gptkb:Documentation
academic papers
Java documentation
software development literature
gptkbp:is_related_to gptkb:JEP_330
gptkb:JEP_386
gptkb:JEP_305
performance benchmarks
JEP 409: Sealed Interfaces
JEP 360: Sealed Types
gptkbp:is_reviewed_by gptkb:Java_Community_Process
gptkb:Java_Language_Committee
Software engineers
Java experts
Java language experts
gptkbp:is_scalable Supports large-scale applications.
gptkbp:is_standardized_by Java testing practices
gptkbp:is_supported_by gptkb:Java_community
gptkb:Java_libraries
Java IDEs
major IDEs
Java performance tools
Java performance frameworks
gptkbp:is_tested_for gptkb:JDK_15_Test_Suite
development environments
production environments
Extensively tested.
Java testing frameworks
Extensive testing conducted.
QA environments
Extensively tested in JDK 17.
JDK 14 builds
gptkbp:is_used_in Modern Java applications
gptkbp:is_utilized_by Software developers
Java developers
software engineers
gptkbp:issues JDK-8261234
JDK-8265780
gptkbp:key Legacy modules are deprecated.
Concurrent processing reduces GC pause.
gptkbp:key_feature gptkb:Sealed_classes
gptkb:JDK_11
Pattern Matching
Sealed interfaces
Allows for more predictable and maintainable code.
Sealed classes restrict which classes can extend them.
Supports pattern matching.
Concurrent stack processing.
Non-sealed classes
Enhances pattern matching.
Permits clause
Permits control over class inheritance.
Sealed interfaces can only be implemented by specified classes.
gptkbp:language Pattern Matching.
gptkbp:latest_version 1.0
1.0.
JDK 17.
gptkbp:legacy No longer provided.
gptkbp:library Affects Java libraries.
gptkbp:modern_relevance Highly relevant for modern Java development.
gptkbp:module Java EE.
CORBA.
gptkbp:next_review_date N/ A.
gptkbp:notable_contributor gptkb:Alex_Buckley
gptkb:Java_ecosystem
gptkbp:notable_production Affects software development practices.
Facilitates easier coding patterns.
Facilitates smoother development cycles.
gptkbp:notable_release 2021-09-15
gptkbp:originated_in Java language
gptkbp:outcome Enhanced garbage collection efficiency.
gptkbp:part_of modernize Java
gptkbp:performance Low overhead.
Optimized for performance.
Minimal impact on performance.
Performance metrics published.
Significant in multi-threaded applications.
Positive impact on application performance.
Measured in terms of pause time.
gptkbp:plot_summary Deprecation of outdated Java EE and CORBA modules.
Pattern matching for switch enhances the switch statement.
gptkbp:project Completed in 2021.
Project Loom.
Continued enhancements planned.
Reduce GC pause times.
To enhance Java's garbage collection capabilities.
To enhance Java's garbage collection.
gptkbp:projected_outcome Successful deprecation.
gptkbp:proposed_by gptkb:Brian_Goetz
gptkb:Oracle
gptkb:Oracle_Corporation
gptkb:James_Gosling
gptkb:Java_Community_Process
gptkb:Javac_Team
gptkb:Mark_Reinhold
Remove the CORBA modules
Remove the Java EE modules
Remove the Security Manager.
gptkbp:protocol JFR streaming protocol
gptkbp:provides better error messages
New language feature
Improved instanceof operator
gptkbp:published_by gptkb:Open_JDK
gptkbp:real_time_analysis Supports real-time analysis.
gptkbp:real_time_monitoring Real-time monitoring capabilities.
gptkbp:reduces Boilerplate code
gptkbp:related_concept gptkb:Inheritance
Interfaces
Polymorphism
Type safety
Abstract classes
Type safety.
API stability
None.
Polymorphism.
Code maintainability.
ISO/ IEC 23270.
Pattern matching.
Sealed classes.
Abstract classes.
Inheritance.
Interfaces.
Java language features.
Software design principles.
Type hierarchy.
Records.
Type hierarchies.
gptkbp:related_jeps gptkb:JEP_333
gptkb:JEP_394
gptkb:JEP_290
gptkb:JEP_305
gptkb:JEP_320
gptkb:JEP_406
gptkb:JEP_409
JEP 394.
JEP 386, JEP 392.
gptkbp:related_to gptkb:JEP_411
gptkb:JEP_394
gptkb:Java_Flight_Recorder
gptkb:Java_SE_14
gptkb:Garbage_Collection
gptkb:JEP_406
gptkb:JEP_409
gptkb:JEP_418
JFR (Java Flight Recorder)
gptkbp:release_date March 2020
2021-09-30
September 2021
September 2021.
gptkbp:release_notes Included in JDK 17 release.
Included in Java 17 release notes.
gptkbp:released gptkb:Java_SE_17
gptkb:JDK_11
gptkb:JDK_14
gptkb:JDK_15
gptkb:JDK_18
gptkb:Java_17
gptkb:JDK_21
gptkbp:removal_timeline JDK 22.
gptkbp:replaced_by Java EE and CORBA are no longer widely used.
gptkbp:replaces JMX has been superseded by other monitoring solutions.
Legacy APIs
gptkbp:repository Open JDK Git Hub repository.
gptkbp:requires gptkb:Z_Garbage_Collector_(ZGC)
gptkb:JDK_15_runtime
JFR API
gptkbp:result Approved.
gptkbp:reviews gptkb:Gilad_Bracha
gptkb:Brian_Goetz
gptkb:Venkat_Subramaniam
gptkb:Georges_Saab
gptkb:Mark_Reinhold
gptkb:Jesse_Glick
2021-06-15
2021-06-30.
Alex Buckley.
Sharat Chander
Various members of the Open JDK community.
The JEP was reviewed by the JDK Release Team.
https://openjdk.java.net/jeps/397# Review
Reviewed by JDK Review Board.
gptkbp:scope Focus on ZGC enhancements.
JDK.
gptkbp:security Access control for event streaming.
gptkbp:specification gptkb:Java_Language_Specification
Java Language Specification.
Defines the syntax and semantics of sealed interfaces.
Enhances the instanceof operator
Pattern Matching for instanceof Specification
JFR Event Streaming Specification
Defines the rules for sealed interfaces.
gptkbp:specifies Virtual Machine Specification
gptkbp:stakeholders Encouraging.
Java developers, Oracle.
Java developers.
Positive from industry leaders.
gptkbp:status gptkb:Final
gptkb:Preview
Standard Feature
2021-07-01.
Approved.
https://openjdk.java.net/jeps/397# Status
Standard Feature Preview
Status changed to Final.
gptkbp:strategy enhance Java's competitiveness.
gptkbp:streaming_mechanism JFR events
gptkbp:streaming_platforms Supports event streaming.
gptkbp:student_enrollment Configurable data retention.
gptkbp:success Achieving lower latency.
gptkbp:supports test-driven development
Null checks
gptkbp:sustainability_efforts Ongoing support and updates.
gptkbp:target_jdk gptkb:JDK_17
gptkb:JDK_14
gptkb:JDK_21
gptkbp:targets Java developers
gptkbp:title gptkb:Pattern_Matching_for_switch_(Preview)
gptkb:Sealed_Classes
Deprecate the Security Manager
Sealed Interfaces
ZGC: Concurrent Thread-Stack Processing
Sealed Classes (preview)
Sealed Classes (Standard Feature)
Deprecate the Java EE and CORBA Modules for Removal
Remove the Java Management Extensions (JMX) Modules
JFR Event Streaming (Standard Feature)
gptkbp:trends Trends towards more expressive syntax.
gptkbp:type JEP.
gptkbp:updates 2021-09-14
2020-03-17
gptkbp:usage Used in Java programming.
Used in defining restricted class hierarchies.
Used in switch expressions.
gptkbp:use_case Type checking in switch statements.
Reducing boilerplate code.
Creating extensible frameworks.
Defining a closed set of subclasses.
Enabling better testing strategies.
Encouraging best practices.
Encouraging code reuse.
Encouraging modular design.
Enforcing design constraints.
Enhancing API design.
Enhancing IDE support.
Enhancing security through controlled inheritance.
Facilitating better debugging.
Facilitating code refactoring.
Facilitating code reviews.
Facilitating pattern matching.
Improving code maintainability.
Improving collaboration among developers.
Improving overall code quality.
Improving performance.
Improving type inference.
Modeling restricted class hierarchies.
Production diagnostics
Providing clearer API contracts.
Providing clearer error messages.
Simplifying complex hierarchies.
Supporting better code organization.
Supporting better documentation.
Supporting domain-driven design.
Supporting modular programming.
gptkbp:user_base Java application developers.
gptkbp:user_experience Improves user experience.
Improved user experience.
Improved for end-users.
gptkbp:user_feedback Generally positive.
Positive user feedback.
Positive from early adopters.
User feedback collected post-release.
gptkbp:user_manual User guide available.
gptkbp:vision Modernize the Java platform.
gptkbp:was_a_response_to developer needs
gptkbp:was_a_result_of collaborative development efforts
gptkbp:bfsParent gptkb:JEP_33
gptkb:Java_SE_16
gptkb:JDK_10
gptkb:JDK_14
gptkb:JDK_15
gptkb:JDK_18
gptkb:JEP_488
gptkb:Java_SE_15
gptkb:Java_10
gptkbp:bfsLayer 5