首页 > 解决方案 > 限制方法参数值

问题描述

我目前正在学习 Java 中的注释处理。
对于源代码生成,我正在编写一个小型库。目前,我在单个枚举中拥有所有可应用于方法或字段(最终、静态、瞬态、同步 ....)的修饰符。我的生成库提供了一个方法 addModifiers(ModifierEnum... modifiers) 并且由 Field-Element 和 Method-Element 从它们的超类继承。

我想知道是否有某种方法可以限制允许传递给方法的值,具体取决于调用它的元素。
我首先想到的是覆盖每种类型中的方法或添加验证方法并在参数包含无效组合或值时抛出异常,但这只是一个运行时解决方案。编译时解决方案将非常简洁,但我怀疑它是否可能(也许还通过注释处理和每个元素中的参数的注释?)因为传递的值直到运行时才知道,除非将常量传递给方法(可以您将其限制为仅常量?)。

有任何想法吗?

标签: javamethodsannotation-processing

解决方案


推荐阅读