Hi,
Does anybody familiar with Object Pascal and Java know if Java supports something similar to Object Pascal's Interface Delegation "implements syntax" functionality?
Regards,
Graeme

Mailing lists / fpc-other / 2017-09
6 messages · 2 people · –
Reply by email Subscribe to this list Your subscription
Read-only archive. Use j and k to move between messages.
Hi,
Does anybody familiar with Object Pascal and Java know if Java supports something similar to Object Pascal's Interface Delegation "implements syntax" functionality?
Regards,
Graeme
In our previous episode, Graeme Geldenhuys said:
Does anybody familiar with Object Pascal and Java know if Java supports something similar to Object Pascal's Interface Delegation "implements syntax" functionality?
That is often called delegation, and if you search for java and delegation, it seems not (which is not THAT surprising IMHO):
https://stackoverflow.com/questions/2989005/delegation-example-regarding-java-context
Marco van de Voort wroteThat is often called delegation, and if you search for java and delegation, it seems not (which is not THAT surprising IMHO):
Thanks Marco. So it is actually similar to Object Pascal where you use object composition, but with Object Pascal's "implements" keyboard the interface is automatic in the new class's interface. Where-as with Java you have to define the interface and then delegate the calls to the composition object. I'm sure Eclipse must have that code-generation functionality built-in or an add-on that can do that.
So Object Pascal is just a bit more convenient, but the end-result (functionality) is the same in.
Thanks again for your input.
Regards,
Graeme
Graeme Geldenhuys wroteI'm sure Eclipse must have that code-generation functionality built-in or an add-on that can do that.
And my guess was correct. :) In Eclipse select "Source -> Generate Delegate Methods". Select the field variable that will do the delegation. Eclipse fully implements all (or selected) methods of delegate member as delegate methods.
Regards,
Graeme
Thanks Marco. So it is actually similar to Object Pascal where you use object…
In our previous episode, Graeme Geldenhuys said:
Well, with Pascal's syntax you could link through VMT fragments, without actually bouncing through additional code.
And you don't risk forgetting adding a method to existing classes if you add one to the interface, always a risk with manual workarounds like the codegeneration tools that assume everything is designed at once top-down and only then implemented.
Marco van de Voort wroteAnd you don't risk forgetting adding a method to existing classes
Java will give a compilation error if you do, so nothing to worry about there.
always a risk with manual workarounds like the codegeneration tools that assume everything is designed at once top-down and only then implemented.
Eclipse allows you to run the "wizard" multiple times and will add and remove code depending on what you ticked and unticked. Eclipse's code generation is very impressive.
Regards,
Graeme