Interfaces

ag0aep6g via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Apr 9 01:59:13 PDT 2016


On 09.04.2016 10:45, alexander Patapoff wrote:
> is there a way for me to do this in D? In java, one is able to create a
> new instance of an interface.
>
> interface Action
> {
>    void actions(T t);
> }
>
> class testAction
> {
>    this()
>     {
>      Action action = new Action()
>         {
>           void actions(T t){...}
>         }
>     }
>
> }
>
> I found this feature really useful in java. Is there any way I can
> duplicate this process, without the mixin func?

There is a somewhat obscure feature which lets you declare and 
instantiate a class at the same time:

----
interface Action
{
   void actions(int x);
}

void main()
{
   Action action = new class Action {
       void actions(int x) {/* ... */}
   };
}
----

http://dlang.org/spec/class.html#anonymous


More information about the Digitalmars-d-learn mailing list