编辑:我最初接受了我的答案,但我并不满意,因为我想要正确使用泛型.所以,我一直在做研究并找到了解决方案.请在下面的答案中阅读相关内容.
这是一段自包含的Java代码,展示了我正在尝试做的事情.它可以正确编译,运行和运行.
1 import java.lang.reflect.Method;
2 import java.lang.reflect.InvocationTargetException;
3
4 public class Example
5 {
6 public static <T> void foo(Method method, String target, Object argument, T expectedReturn) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException
7 {
8 T actualReturn = (T) method.invoke(target, argument);
9 System.out.print(actualReturn.equals(expectedReturn));
10 }
11
12 public static void main(String[ ] args) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException
13 {
14 foo(String.class.getMethod("charAt", int.class), "test", 1, 'e');
15 }
16 }
Run Code Online (Sandbox Code Playgroud)
运行此打印true
到控制台,这是我所期望的.令我困扰的是,由于第8行的演员表,我在编译时会收到警告,如下所示(顺便说一句,jGRASP是我的IDE).
---- jGRASP exec:javac -g -Xlint:未选中Sandbox.java …
我有一个包含两个函数的c ++程序文件.如果我单独更改第一个函数,为什么它们都必须重新编译?是否有任何构建系统单独重新编译第一个并将其放回同一个目标文件中?这可能吗?一个功能的说明不应该依赖于其他权利?由于gmake重新编译整个文件,需要花费很多时间,这是不可避免的?将第二个函数放在一个单独的文件中并不是一个好主意,因为它涉及创建不需要的不需要的文件.
Java 注释处理(自 Java 6 起)是一个非常好的概念,因为它允许通过Element
接口(和其他接口)访问有关类和方法的大量信息。
但遗憾的是,我不得不凭经验发现,非注释类永远不会传递给自定义注释处理器:
warning: No SupportedAnnotationTypes annotation found on
my.TESTProcessor, returning an empty set.
Run Code Online (Sandbox Code Playgroud)
我的发现是真的吗?或者我可以“欺骗”编译器以提供有关非注释类的自定义注释处理器信息吗?
我现在正在教自己Python,只是想简单地说(参考下面的例子)sys.argv [1]代表什么.它只是要求输入吗?
#!/usr/bin/python3.1
# import modules used here -- sys is a very standard one
import sys
# Gather our code in a main() function
def main():
print ('Hello there', sys.argv[1])
# Command line args are in sys.argv[1], sys.argv[2] ..
# sys.argv[0] is the script name itself and can be ignored
# Standard boilerplate to call the main() function to begin
# the program.
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud) 假设我们有一个具有虚方法的基类:
class BaseClass
{
virtual void MethodToOverride() const
{
DoSomething();
}
};
Run Code Online (Sandbox Code Playgroud)
一个派生类覆盖了该方法(取决于我们可以再次虚拟或不再虚拟的情况):
class DerivedClass : public BaseClass
{
void MethodToOverride() const
{
DoSomethingElse();
}
}
Run Code Online (Sandbox Code Playgroud)
如果我们犯了一个错误,例如定义MethodToOverride非const或错误的字符,我们只需定义一个新方法,例如:
void MethodToOverride() {} // I forgot the const
void MthodToOverride() const {} // I made a typo
Run Code Online (Sandbox Code Playgroud)
因此编译很好,但在运行时会导致不必要的行为.
有没有办法将函数定义为现有函数的显式覆盖,所以如果我错误地定义它,编译器会发出警告?像(我知道它不存在)的东西:
void MethodToOverride() const overrides BaseClass::MethodToOverride() const {}
Run Code Online (Sandbox Code Playgroud) 如何使用类似于JBoss服务器的tomcat服务器使用jboss-web.xml配置JNDI?请帮帮我吗?
我想知道我们需要写哪个文件?或者有任何编程方式来做到这一点?
先谢谢Pravin
告诉用户是否使用移动设备使用PHP浏览我的网站的最简单方法是什么?
我遇到过许多你可以使用的课程,但我希望有一个简单的if条件!
有没有办法可以做到这一点?
我有一个让我发疯的问题.
我的屏幕上有一大堆按钮(10或多或少),在TableRow中.
我需要访问它们,并且我计划通过循环执行.
访问一个,很容易,添加这个:
boton7 = (Button) findViewById (R.id.Btn7)
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果你可以动态设置id字符串(R.id.Btn7)放入一个可以获取按钮,例如,更改颜色....这样的事情:
for (int i = 0; i <10; i + +) {
Button eachBoton= (Button) findViewById (R.id.Btn + i);
eachBoton. setBackgroundColor (Color.Red);
}
Run Code Online (Sandbox Code Playgroud)
当然,这不起作用......我的问题是,是否有人知道如何安装链条
R.id.Btn + i
Run Code Online (Sandbox Code Playgroud)
上班.
非常感谢.
return $('<div>', {
class: "my_Class"
});
Run Code Online (Sandbox Code Playgroud)