为什么这不是合法的方法签名?

Why is this not a legal method signature?

在我的练习考试中,提出了以下问题:

下面哪些是合法的方法签名?

a)  public void int foo()

b)  private static int foo()

c)  double foo(a, b)

d)  String[] foo(String a, String b)

e)  String foo(int a, String[] b)

我认为选项 A 是非法的,因为你不能输入 "void" AND "int",对吗?

我认为选项 B 没问题,我认为选项 C 也合法,但答案键将 C 标记为非法方法签名。

我无法理解为什么选项 D 和 E 合法,但选项 C 不合法?有什么想法吗?

double foo(a, b)

缺少参数类型。