Component Map
@ComponentMapKey
@ComponentMapKeyenum class CalculatorOperationType {
ADD, SUBTRACT, MULTIPLY, DIVIDE
}
internal interface CalculatorOperation {
@get:ComponentMapKey
val operationType: CalculatorOperationType
fun calculate(a: Int, b: Int): Int
}public enum CalculatorOperationType {
ADD, SUBTRACT, MULTIPLY, DIVIDE
}
public interface CalculatorOperation {
@ComponentMapKey
CalculatorOperationType getOperationType();
int calculate(int a, int b);
}internal class AddOperation : CalculatorOperation {
override val type: CalculatorOperationType = CalculatorOperationType.ADD
override fun calculate(a: Int, b: Int): Int {
return a + b
}
}
internal class MultiplyOperation : CalculatorOperation {
override val type: CalculatorOperationType = CalculatorOperationType.MULTIPLY
override fun calculate(a: Int, b: Int): Int {
return a * b
}
}public class AddOperation implements CalculatorOperation {
@Override
public CalculatorOperationType getOperationType() {
return CalculatorOperationType.ADD;
}
@Override
public int calculate(int a, int b) {
return a + b;
}
}
public class MultiplyOperation implements CalculatorOperation {
@Override
public CalculatorOperationType getOperationType() {
return CalculatorOperationType.MULTIPLY;
}
@Override
public int calculate(int a, int b) {
return a * b;
}
}@ComponentMap
Last updated