Java 有没有办法通过编程区分final param数组和final param省略号?

Java 有没有办法通过编程区分final param数组和final param省略号?,java,arrays,methods,javadoc,ellipsis,Java,Arrays,Methods,Javadoc,Ellipsis,我正在编写一些代码,以基于其java.lang.reflect.Method或构造函数对象创建JavaDoc链接。我不明白javadoc.exe如何知道具有最终数组参数的函数之间的区别 public static final void doSomething(boolean b, int[] ai, String[] as) { } 还有那些有省略号参数的 public static final void doSomethingElse(String... as) { } 假设类对象中没

我正在编写一些代码,以基于其
java.lang.reflect.Method
构造函数
对象创建JavaDoc链接。我不明白
javadoc.exe
如何知道具有最终数组参数的函数之间的区别

public static final void doSomething(boolean b, int[] ai, String[] as)  {
}
还有那些有省略号参数的

public static final void doSomethingElse(String... as)  {
}
假设类对象中没有“省略号”指示。它要么是数组,要么不是数组。通过其
[
前缀,也包括此指示,但同样,仅“array or not array”,没有关于省略号的信息

最后一个参数数组必须有一个以
[])
结尾的JavaDoc链接,最后一个参数省略链接必须以
..)
结尾。是否有任何方法可以通过编程区分这两者

   import  java.lang.reflect.Method;
public class Test  {
  public static final void main(String[] ignored)  {
     Method m = null;
     try  {
        m = Test.class.getDeclaredMethod("doSomething", boolean.class, 
           int[].class, String[].class);
     }  catch(Exception x)  {
        throw  new RuntimeException(x);
     }
     System.out.println(m);
  }
  public static final void doSomething(boolean b, int[] ai, String... as)  {
  }
}
输出:

public static final void Test.doSomething(boolean,int[],java.lang.String[])

是的。您可以调用
Method.isVarargs();
。显然,varargs可能只出现在参数列表的末尾,因此如果
Method.getParameterTypes()
的最后一个元素是数组调用
Method.isVarargs()
是的。您可以调用
Method.isVarargs()显然,varargs可能只出现在参数列表的末尾,因此如果
method.getParameterTypes()
的最后一个元素是数组调用
method.isVarargs()

也许这很傻,但是你能尝试用编程的方式实例化两个可能的签名吗?如果它们都编译,那么它的
..
,否则它只是
[]
。也许这很傻,但是你能尝试用编程的方式实例化两个可能的签名吗?如果它们都编译,那么它的
..
,否则它只是
[]
。太好了。谢谢。我被困在“省略号”这个词上了。太好了。谢谢。我被困在“省略号”这个词上了。