【发布时间】:2019-01-24 10:35:32
【问题描述】:
这可能以前被问过,我见过一些类似的/类似的,但不太明白。
在Java中,如何使方法接受任何类作为参数?
例如,
public (AnyClass) myMethod(String whatever, (AnyClass) thisClass){
}
使用如下:
myMethod("Hello", ClassA);
myMethod("Hello", ClassB);
感谢您的帮助!
编辑:
要求使用示例; 我正在做的是将 JSON 字符串映射到 POJO,但试图将整个事情抽象出来以便可以重用。 所以 - 我需要能够通过任何类和 JSON 字符串(或 HttpConn),然后构建,然后使用 Jackson 构建该 POJO 并返回可能是任何类型的对象。
(我想做什么的想法):
public Class<?> doSomething(String jsonString, Class<?> clazz){
clazz newInstance = mapper.readValue(jsonString, clazz);
return clazz;
}
像这样称呼:
ClassA test = doSomething("String One", ClassA.class);
ClassB testTwo = doSomething("Different format string", ClassB.class);
希望这有助于理解问题......以及我对解决方案的理解!
【问题讨论】:
-
任何类对象或任何实例?前者使用
Class<?>,后者使用Object -
不,它必须是类本身 - 或稍后使用的类引用(用于映射)。这可能吗?
-
在这种情况下,您可以使用
Class<?>作为参数类型,然后将其称为:myMethod("Hello", ClassA.class) -
是的,这是个问题吗?