我有一个带有方法 add 的类 Counter,该方法将在创建时对任何类的实例进行计数,但我得到“Counter 类型中的方法 add(Class) 不适用于参数 (MyClass)”,我该如何修复它?我应该输入什么而不是 Class<?> c
?
public class Counter
{
static Map<String, Integer> map = new HashMap<String, Integer>();
public static void add(Class<?> c)
{
String name = c.getClass().getSimpleName();
int count = list.containsKey(name) ? map.get(name) : 0;
map.put(name, count + 1);
}
}
public class MyClass
{
public MyClass()
{
Counter.add(this);
}
最佳答案
我同意@Rohit Jain 的观点,它应该是Object
。不过,我想建议 add()
方法的参数化版本:
public static <T> add(T obj) {
Class<?> clazz = obj.getClass();
// your implementation
}
参数化版本看起来更好。
关于java - 计算类实例时将类作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21240740/