Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 极限法参数值_Java_Methods_Annotation Processing - Fatal编程技术网

Java 极限法参数值

Java 极限法参数值,java,methods,annotation-processing,Java,Methods,Annotation Processing,我正在学习Java中的注释处理。 对于源代码生成,我正在编写一个小型库。目前,我拥有可以应用于单个枚举中的方法或字段(final、static、transient、synchronized…)的所有修饰符。我的生成库提供了一个addModifiers(ModifierEnum…modifiers)方法,并由Field元素和method元素从它们的超类继承 我想知道是否有某种方法可以根据调用该方法的元素来限制允许传递给该方法的值。 我首先想到在每个类型中重写该方法,或者添加一个验证方法,如果参数包

我正在学习Java中的注释处理。
对于源代码生成,我正在编写一个小型库。目前,我拥有可以应用于单个枚举中的方法或字段(final、static、transient、synchronized…)的所有修饰符。我的生成库提供了一个addModifiers(ModifierEnum…modifiers)方法,并由Field元素和method元素从它们的超类继承


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


有什么想法吗?

“想知道是否有办法根据调用的元素限制允许传递给方法的值”-您是否已经知道FieldElement和MethodElement需要多少个参数?你能记下这个符号吗?然后,如果可能的话,我们可以想办法把它传给父母。现在它的含义不明确。@ImGroot-Well-Javasyntax定义每个修饰符只能对同一个元素应用一次,以及哪些修饰符可以在哪个组合中应用于哪个元素。例如,对于我的method元素,我知道修饰符enum的哪个子集可以传递给方法,在该方法中,组合和每个enum只能传递一次。“想知道是否有某种方法可以限制允许传递给方法的值,具体取决于调用该方法的元素”-您是否已经知道FieldElement和MethodElement需要多少个参数?你能记下这个符号吗?然后,如果可能的话,我们可以想办法把它传给父母。现在它的含义不明确。@ImGroot-Well-Javasyntax定义每个修饰符只能对同一个元素应用一次,以及哪些修饰符可以在哪个组合中应用于哪个元素。例如,对于我的method元素,我知道修饰符enum的哪个子集可以传递给方法,其中组合和每个enum只传递一次。