void methodA() {
methodB(ClassA.class)
}
void methodB(Class classname) {
classname a; //not correct
HashMap<String, classname> hash = new HashMap<>(); //not correct
}
IDE抱怨它不正确。
我想做的事情就像被评论为//不正确。为什么不正确?我该怎么做?
答案 0 :(得分:3)
您不能将变量名称用作类型名称,因此methodB
不会编译。
但是,您可以为方法使用类型参数。尝试
<T> void methodB(Class<T> clazz) {
T a;
HashMap<String, T> hash = new HashMap<>();
}
答案 1 :(得分:0)
您不能将变量名称用作必须作为参数传递的任何方法的类型。否则会产生编译错误。