{"enrichment":{"faq":[{"a":"Java Idioms teaches modern language features and conventions for Java 17+ LTS, emphasizing records for immutable data, sealed classes for type-safe hierarchies, and pattern matching in switch expressions. The skill guides you through constructor injection, domain-specific exception handling, and testing practices to write idiomatic Java code aligned with current best practices.","q":"What are Java 17+ modern coding patterns covered by Java Idioms?"},{"a":"Java Idioms explains how records eliminate boilerplate for immutable data classes by auto-generating constructors, accessors, equals, and hashCode. Sealed classes restrict inheritance to approved subtypes, enabling exhaustive pattern matching in switch expressions. Together, they create type-safe hierarchies that the compiler can verify at compile time, reducing runtime errors.","q":"How do Java records and sealed classes improve type safety?"},{"a":"Java Idioms covers pattern matching in switch expressions with type patterns, record patterns, and guard conditions. Examples show how to match on object types, destructure records directly in case labels, and use guards to refine matches\u2014replacing verbose instanceof chains and casts with cleaner, more expressive switch logic.","q":"What pattern matching switch examples does Java Idioms demonstrate?"},{"a":"Java Idioms guides best practices for domain-specific exception hierarchies, emphasizing checked exceptions for recoverable errors and unchecked exceptions for programming faults. The skill teaches constructor injection of error handlers, proper exception wrapping to preserve context, and clean separation of concerns so error handling logic remains testable and maintainable.","q":"How should Java error handling and exception hierarchies be structured?"},{"a":"Java Idioms covers static analysis tooling including Spotbugs for bug detection, Checkstyle for code formatting, and SonarQube for comprehensive quality gates. The skill guides setup and configuration to enforce naming conventions, catch common pitfalls before commit, and integrate these tools into your build pipeline for consistent code standards.","q":"What code quality tools and static analysis does Java Idioms cover?"},{"a":"Java Idioms demonstrates JUnit 5 testing patterns including parameterized tests for data-driven scenarios and Mockito for isolating dependencies. The skill emphasizes constructor injection to enable easy mocking, writing focused unit tests, and using TestContainers for integration testing\u2014ensuring your code remains maintainable and your test suite stays fast and reliable.","q":"How does Java Idioms teach clean, testable code with JUnit 5 and Mockito?"}],"shadow_tags":["modern-java-syntax","type-safety-patterns","immutable-data-structures","compile-time-verification","dependency-injection-patterns","exception-design","test-automation-frameworks","static-analysis-tools","code-quality-enforcement","concurrent-programming"],"summary_rewrite":"Java Idioms covers modern language features and conventions for Java 17+ LTS, emphasizing records for immutable data, sealed classes for type-safe hierarchies, and pattern matching in switch expressions. The skill guides constructor injection, domain-specific exception handling, and testing with JUnit 5 and Mockito, alongside static analysis tooling to enforce code quality before commit."},"files":[{"bytes":5679,"path":".agents/skills/java-idioms/SKILL.md","sha256":"836d0f0e8f2ef45f04c0133cef98b0ab019e34a6cea4c74eb56edaf633271721","url":"https://skillfed.io/files/irahardianto/awesome-agv/java-idioms/0fc0762e/SKILL.md"}],"id":"irahardianto/awesome-agv/java-idioms","links":{"html":"https://skillfed.io/irahardianto/awesome-agv/java-idioms","md":"https://skillfed.io/irahardianto/awesome-agv/java-idioms.md","repo":"https://github.com/irahardianto/awesome-agv"},"meta":{"agents_supported":[],"first_seen":"2026-07-28","forks":48,"language":"JavaScript","last_updated":"2026-07-17","license":"MIT","name":"Java Idioms","publisher":"irahardianto","stars":150},"relations":{"similar":[{"id":"irahardianto/awesome-agv/php-idioms"},{"id":"irahardianto/awesome-agv/cpp-idioms"},{"id":"irahardianto/awesome-agv/python-idioms"},{"id":"irahardianto/awesome-agv/csharp-idioms"},{"id":"irahardianto/awesome-agv/ruby-idioms"},{"id":"irahardianto/awesome-agv/kotlin-idioms"},{"id":"xu-xiang/everything-claude-code-zh/springboot-verification"},{"id":"affaan-m/ECC/springboot-verification"},{"id":"affaan-m/ECC/quarkus-verification"},{"id":"irahardianto/awesome-agv/spring-boot-idioms"}]},"slug":{"owner":"irahardianto","repo":"awesome-agv","skill":"java-idioms"},"version":"0fc0762e"}
