从如何获得Java中8的方法参数名称使用反射?
我知道使用javac -parameters
参数可以将参数名保存在*.class文件中.但它在lambda表达式中无效?
例:
import java.lang.reflect.Method;
import java.lang.reflect.Parameter;
public class MyTest {
public static void main(String[] args) {
for(Method m : Test.class.getDeclaredMethods()) {
System.out.println(m.getName());
for(Parameter p : m.getParameters()) {
System.out.println(" => " + p.getName());
}
}
}
}
interface MyInterface {
Object doSomething(int a, int b);
}
class Test {
private void bar(MyInterface iface) {
}
public void foo() {
bar((x, y) -> null);
}
}
Run Code Online (Sandbox Code Playgroud)
当我做
javac -parameters MyTest.java
java MyTest
Run Code Online (Sandbox Code Playgroud)
它打印
bar
=> iface
foo …
Run Code Online (Sandbox Code Playgroud) 有时我必须刷新 iptables 的所有规则,如果刷新前没有备份,我将无法恢复规则。我必须重新启动dockerd
才能重新创建规则。