Java Mapping for Local Interfaces
On this page:
Mapped Java Class
A Slice local interface is mapped to a Java interface with the same name, for example:
Slice
[["java:package:com.zeroc"]] module Ice { local interface Communicator { ... } }
is mapped to the Java interface Communicator
:
Java
package com.zeroc.Ice; public interface Communicator { ... }
The delegate
metadata allows you to map a local interface with a single operation to a functional Java interface. For example:
Slice
[["java:package:com.zeroc"]] module Ice { ["delegate"] local interface ValueFactory { Value create(string type); } }
is mapped to:
Java
package com.zeroc.Ice; @FunctionalInterface public interface ValueFactory { com.zeroc.Ice.Value create(String type); }
LocalObject in Java
All Slice local interfaces implicitly derive from LocalObject
, which is mapped to java.lang.Object
in Java.
Mapping for Local Interface Inheritance in Java
Inheritance of local Slice interfaces is mapped to interface inheritance in Java. For example:
Slice
module M { local interface A {} local interface B extends A {} local interface C extends A {} local interface D extends B, C {} }
is mapped to:
Java
package M; public interface A {} public interface B extends A {} public interface C extends A {} public interface D extends B, C {}