java - 计算类实例时将类作为参数

标签 java class parameters counting instances

我有一个带有方法 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/

相关文章:

java - 为什么扩展函数不适用于 ArrayList<ArrayList<Double>>

javascript - 在 JS OOP 中创建一个类

batch-file - 使用参数包含等号的批处理文件覆盖 .INI 文件

python - 如何使用 Sklearn pipeline 进行参数调整/交叉验证?

java - Eclipse调试时出现这个错误是什么意思?

java - jsp 未在请求的 uri 上呈现

Java:使用类型参数访问私有(private)构造函数

c++ - 程序员何时使用空基优化 (EBO)

c++ - 用于返回嵌套类类型的范围解析运算符

c++ - 使用 UNREFERENCED_PARAMETER 宏