类型推断与参数名称
public class MyTypePredict {
@Test
public void test1 () {
Package<String> p1 = new Package<>();
p1.getOrDefault("goodPack1", Package.getDefaultValue());
// 在jdk7及以下,需要使用如下方式
//p1.getOrDefault("goodPack1", Package.<String>getDefaultValue());
}
private static class Package<T> {
public static <T> T getDefaultValue() {
return null;
}
public T getOrDefault(T value1, T value2) {
return value1 == null ? value1 : value2;
}
}
/**
* jdk1.8默认无法获取参数名车,javac -parameters
* 以下将输出Parameter: arg0
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Method method = MyTypePredict.class.getMethod("main", String[].class);
for( final Parameter parameter: method.getParameters() ) {
System.out.println( "Parameter: " + parameter.getName() );
}
}
}