我试图以反射方式在Java中调用此方法:
public void setFoo(ArrayList<String> foo) { this.foo = foo; }
问题是我想将null传递为null
,以便foo变为null。
但是,在以下方法中,它假定没有参数,并且我得到IllegalArgumentException
(wrong number of arguments
):
method.invoke(new FooHolder(), null);
// -----------------------------^ - I want null to be passed to the method...
这是如何完成的?
尝试
method.invoke(new FooHolder(), new Object[]{ null });
问题内容: 在下面的代码中,输出为 串 如果我使用类型为参数的方法删除该方法,则输出为 目的 我知道当参数类型不完全匹配时方法的重载行为如何,但是我不明白如何将 null 视为和/或参数。 这有什么解释? 问题答案: 根据Java规范 15.12.2.5节,它始终使用最特定的方法。 简介相当具体: 如果多个成员方法既可访问又可应用于方法调用,则必须选择一个成员方法来为运行时方法分派提供描述符。Ja
问题内容: 我在类中有以下两种方法: 下面的代码行 印刷品,如何使其印刷? 问题答案: 要使用反射调用以原始类型作为参数的方法: 你可以用 要么 同样适用于其他原始类型
我用java反射写了下面的代码。在这段代码中,我调用了有参数的方法1(),代码运行时没有错误。没关系。但是我如何调用没有参数的方法2()和方法3()呢?如何在java反射中调用没有参数的方法?Java支持这样的功能吗?
问题内容: 如果我有一个vararg Java方法并调用,则我和 都将null。但是,如果我呼叫f,则其本身为null。为什么会这样呢? 我应该怎么称呼这样的? 问题答案: 问题是,当你使用原义null时,Java不知道它应该是哪种类型。它可以是空对象,也可以是空对象数组。对于单个参数,假定为后者。 你有两种选择。将null显式转换为Object或使用强类型变量调用该方法。请参见下面的示例: 输出
问题内容: 想要将arraylist类型的参数传递给我要调用的方法。 我遇到一些语法错误,所以我想知道这是什么问题。 方案1: 方案2(不相同,但相似): 问题答案: 您的(主要)错误是在参数中传递了不必要的泛型类型。我试图编写一个与您的代码相似但可以正常工作的简单代码。希望它可以某种方式回答您的问题:
问题内容: 通过我可以参数化这样的查询; 但是问题在于,如果a为None,则查询应如下所示; 因此,当查询可以为None或字符串时,查询应如何? 问题答案: 解决方案是使用ISO / ANSI标准-安全比较: 并非所有数据库都支持此功能,因此您还可以使用: 如果您不愿意两次传递参数,则可以在子句中包含它: