<p dir="ltr">Thank you for the clarification and the workaround Tagir.</p>
<p dir="ltr">Best regards!</p>
<br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">El sáb, 28 de dic de 2024, 1:24 a. m., Tagir Valeev <<a href="mailto:amaembo@gmail.com">amaembo@gmail.com</a>> escribió:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">Hello! <div dir="auto"><br></div><div dir="auto">There's no such thing as a 'subpackage' in Java. Two packages having the same name prefix are just two different packages. If you want to group several packages together, a proper mechanism for this in Java is declaring a JPMS module. If you declare a module, you'll be able to put the implementations of your sealed interface into different packages within the module. </div><div dir="auto"><br></div><div dir="auto">With best regards, </div><div dir="auto">Tagir Valeev </div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Dec 28, 2024, 05:15 david Grajales <<a href="mailto:david.1993grajales@gmail.com" target="_blank" rel="noreferrer">david.1993grajales@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><p>Hello Amber Team,</p><p>I’ve observed a counter intuitive behavior, and I’m unsure whether it’s intentional or a potential issue.</p><p>Here’s the scenario:</p><ol><li>I have a package named <code>vehicles</code> containing a <strong>sealed interface</strong> called <code>Vehicle</code>.</li><li>Inside this <code>vehicles</code> package, I’ve created two sub-packages:<ul><li><code>land-vehicles</code></li><li><code>water-vehicles</code></li></ul></li><li>Each sub-package contains two records implementing the <code>Vehicle</code> interface.</li></ol><p>However, the compiler raises an error when I attempt this setup:</p><blockquote><p>"A class is not allowed to extend or implement a sealed class from another package."</p></blockquote><p>This seems counterintuitive because all components are conceptually part of the same package with the records merely placed in sub-packages for better organization.</p><p>Here’s a textual representation of the package layout for reference:</p><p><br></p><p>vehicles/</p><p>├── Vehicle.java            // Sealed interface</p><p>├── land-vehicles/</p><p>│   ├── Car.java            // Record implementing Vehicle</p><p>│   ├── Motorcycle.java     // Record implementing Vehicle</p><p>├── water-vehicles/</p><p>    ├── Boat.java           // Record implementing Vehicle</p><p>    ├── Submarine.java      // Record implementing Vehicle</p><p><br></p><p>Could you clarify whether this behavior is intended or a bug? If not, could this be an area for potential improvement?</p><p>I am using openjdk 23.0.1</p><p>Thank you for your time and assistance!</p><p>Best regards and I hope you all have a nice new year.</p></div></div></div></div></div></div></div>
</blockquote></div>
</blockquote></div>