Hacker News new | ask | show | jobs
by needusername 3259 days ago
> Why java.beans.PropertyChangeListener is from Swing UI?

Well the java.beans package and Swing UI are in the same module. Why? Because java.beans depends on AWT. Why? Because of interfaces like this https://docs.oracle.com/javase/8/docs/api/java/beans/BeanInf... Could AWT und Swing still be split into different modules? Maybe. Does that mean that almost every Java application will have to deploy two UI toolkits, PLaFs and sound even if it's just a web service? Yes because almost every Java application at least indirectly depends on java.beans. Does Oracle or Java 9 / Jigsaw marketing care? No.

1 comments

What's the use case for java.beans in a non-GUI application? Why do you say almost every Java application depends on it?
It's hard to imagine an application without getters and setters. Now if you want to read/write those beans in a generic way, you need to use reflection. And correct approach is to use java.beans classes instead of rolling your own low-level solution.
> What's the use case for java.beans in a non-GUI application?

Mostly simplified calling of getters and setters, i.e. emulation of object properties.

> Why do you say almost every Java application depends on it?

- JAXB (XML binding) and Activation depend on it, so if you have direct or indirect dependency on JAXB or Activation you need java.beans.

- Spring depends on java.beans