gpt4 book ai didi

java - 在 Java 中实现具有两种不同返回类型的访问者模式

转载 作者:行者123 更新时间:2023-12-01 16:43:41 26 4
gpt4 key购买 nike

我正在尝试在 java 中实现访问者模式(抱歉,在家练习),该对象结构具有不同返回类型(int 和 void)的方法。

一个creteVisitor(即CostAss)返回int,第二个ConcreteVisitor(即drawCosts)返回void>(即打印成本)。

enter image description here

我有一个问题,不知道如何实现这个问题。我不允许在 Employee 接口(interface)中创建两个接受方法(一个 int e 一个 void)

enter image description here

最佳答案

从 Java 角度来看,这些方法是相同的,因为返回类型不是方法签名的一部分。

该图不适用于 Java。但是,可以使用泛型来解决这个问题。

interface Employee<T> {
Optional<T> accept(Visitor visitor);
}

class Assistant implements Employee<Integer> {
@Override
public Optional<Integer> accept(Visitor visitor) {
return Optional.of(100);
}
}

class Manager implements Employee<Void> {
@Override
public Optional<Void> accept(Visitor visitor) {
return Optional.empty();
}
}

我并不是这个想法的大力支持者,我只是想分享它的实现方式。

关于java - 在 Java 中实现具有两种不同返回类型的访问者模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57333182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com