Netbeans 7.2.1,Java反射,method.invoke(super,…)
为什么要调用Netbeans 7.2.1,Java反射,method.invoke(super,…),java,reflection,netbeans,super,Java,Reflection,Netbeans,Super,为什么要调用 try { method.invoke(super, "abc", "def"); } catch (Exception e) { // ignore for now } 给了我这样一个错误: '.' expected 在Netbeans 7.2.1中?清理和构建后: Compiling 2 source files to C:\Documents and Settings\u\Moje dokumenty\NetBeansProjects\ServletPlu
try {
method.invoke(super, "abc", "def");
}
catch (Exception e) {
// ignore for now
}
给了我这样一个错误:
'.' expected
在Netbeans 7.2.1中?清理和构建后:
Compiling 2 source files to C:\Documents and Settings\u\Moje dokumenty\NetBeansProjects\ServletPlus\build\web\WEB-INF\classes
C:\Documents and Settings\u\Moje dokumenty\NetBeansProjects\ServletPlus\src\java\pl\adrian\servlets\ServletPlus.java:45: error: '.' expected
method.invoke(super, "abc", "def");
C:\Documents and Settings\u\Moje dokumenty\NetBeansProjects\ServletPlus\src\java\pl\adrian\servlets\ServletPlus.java:45: error: ')' expected
method.invoke(super, "abc", "def");
C:\Documents and Settings\u\Moje dokumenty\NetBeansProjects\ServletPlus\src\java\pl\adrian\servlets\ServletPlus.java:45: error: ';' expected
method.invoke(super, "abc", "def");
C:\Documents and Settings\u\Moje dokumenty\NetBeansProjects\ServletPlus\src\java\pl\adrian\servlets\ServletPlus.java:45: error: not a statement
method.invoke(super, "abc", "def");
C:\Documents and Settings\u\Moje dokumenty\NetBeansProjects\ServletPlus\src\java\pl\adrian\servlets\ServletPlus.java:45: error: ';' expected
method.invoke(super, "abc", "def");
5 errors
C:\Documents and Settings\u\Moje dokumenty\NetBeansProjects\ServletPlus\nbproject\build-impl.xml:851: The following error occurred while executing this line:
C:\Documents and Settings\u\Moje dokumenty\NetBeansProjects\ServletPlus\nbproject\build-impl.xml:284: Compile failed; see the compiler error output for details.
BUILD FAILED (total time: 3 seconds)
我相信您做得不对:仅供参考如何使用java反射调用方法的示例:
java.lang.reflect.Method method;
try {
method = obj.getClass().getMethod(methodName, param1.class, param2.class, ..);
} catch (SecurityException e) {
// ...
} catch (NoSuchMethodException e) {
// ...
}
try {
method.invoke(obj, arg1, arg2,...);
}
编辑:
正如@mavroscy所提到的,super
是java中的一个关键词super
是一个
尝试更改变量名
请参见此处如何使用super
关键字
如果您想要,您必须使用super.methodName()
替换为类的名称
Method m = <classInstance>.getClass().getSuperClass().getDeclaredMethod("ABC");
m.invoke(<classInstance>);
方法m=.getClass().getSuperClass().getDeclaredMethod(“ABC”);
m、 调用();
问题在于我对多态性的理解不好,嗯,这有点可怜,因为我认为“super”指的是超类的对象,“this”指的是当前对象——类似的东西
当然,只有一个对象从扩展类中实例化。
因此,我不得不将“super”替换为“this”。编译失败于
ServletPlus.java
,第45Hi行,@Adrian Adamczyk您问了这个问题(您是如何绘制路径的,请帮助我)@Bashir我使用了很多texuredpolygon方法的逻辑中有错误。invoke,用法:method.invoke(this,“abc”,“def”);解决了我的问题。