3

在 python 中,您不必指定函数参数的类型。有没有办法为 Java 方法参数执行此操作?如果说我不确定将输入什么样的参数。

4

2 回答 2

11

用对象或泛型试试这个:

目的:

public void foo(Object bar)
{

}

泛型:

public <T> void foo(T bar) {

}

于 2012-12-24T01:36:33.037 回答
2

Python、JavaScript 和类似的动态类型语言具有具有任意属性的对象,例如您可以编写以下代码:

someObj.someAttr

如果类型具有这样的属性并且已设置,它将返回属性值,否则返回 null。

在 java 中最接近这个的是带有 String 键和 Object 值的 Map,所以试试这个:

public void someMethod(Map<String, Object> map) {
    Object o = map.get("someAttr");
    // do something with o, which may be null
}
于 2012-12-24T01:49:54.143 回答