3 ms·
`select.project(sum(orderTable.amount) / sum(orderTable.quantity) * 100)` How does this work? I thought Java didn't have operator overloading. Are expressions
by bweitzman 6y ago
`select.project(sum(orderTable.amount) / sum(orderTable.quantity) * 100)`
How does this work? I thought Java didn't have operator overloading. Are expressions represented as numbers somehow??
- lf-non 6y agoThey use a java compiler plugin [1] (hence the need for IDE plugin). So you are writing java syntax but the code is not really java. They are rarely used in java ecosystem and have a reputation for being fragile - I haven't tested whether this particular one for edge cases though. [1] https://github.com/braisdom/ObjectiveSql/blob/master/core/src/main/java/com/github/braisdom/objsql/javac/JavaOOPlugin.java https://github.com/braisdom/ObjectiveSql/blob/master/core/sr...
- an_opabinia 6y agoLombok is used in a lot of places. A way to look at Graal is, "better Java compiler plugins." Some stuff, like using checked exceptions as a function type system, is fragile. Code weaving was always sort of the future. Look at the Javascript ecosystem. It's unavoidable. Not necessarily bad. Anyway ObjectiveSQL should probably use an annotationProcessor to achieve the code weaving goals. Similar to Dagger.