gpt4 book ai didi

Java 需要帮助检查字符串是否是实例

转载 作者:行者123 更新时间:2023-12-02 00:46:37 24 4
gpt4 key购买 nike

我有一个接口(interface) GenericExpression,它可以扩展以创建表达式(即 AndExpression、OrExpression 等)。

每个 GenericExpression 实现都有一个表示它的字符串(即“&”、“+”等)(存储为静态变量“stringRep”)

有什么方法可以获取用户输入的字符串并检查它是否代表 GenericExpression?

如果不是(看起来可能是这种情况),有没有办法通过重构设计来达到类似的效果?

谢谢!

编辑:上面提供了更多细节。

此外,最终目标是能够任意实现 GenericExpression 并仍然检查字符串是否表示其子类之一的实例。因此,我不能只存储实现映射 - 字符串表示对,因为这会使 GenericExpression 不再易于扩展。

另外,这是作业

最佳答案

嗯,我认为您需要在某个地方定义您的程序支持哪些表达式。我认为最好的方法是使用 map ,您可以在其中将接口(interface)映射到字符串。这样您就可以轻松地查找表达式及其表示的字符串。您定义此 map 的位置取决于您的设计。一种可能性是辅助类中的静态方法,它将表达式解析为字符串,例如:

Expressions.get("&").invoke(true, false);

其中 getExpressions 上的静态方法,用于在静态映射中查找所需的表达式。您必须在静态初始化程序中初始化此映射,或者让表达式实例在创建时添加自身。

编辑: (我想在一个答案中对此发表评论,但似乎被删除了)就我个人而言,我不喜欢类自行注册的想法。它给我一种无法控制我的代码的感觉。我更愿意在Expressions类本身中实例化这些类。无论如何,必须为每个新子类编写注册类的代码。我更喜欢将此代码集中在一个类中,因此如果我想更改逻辑或重构,我只需触及一个类。

关于Java 需要帮助检查字符串是否是实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4820741/

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