Java 使用类<;创建泛型对象&燃气轮机;变量

Java 使用类<;创建泛型对象&燃气轮机;变量,java,Java,我有一个泛型类a,我在一个方法中,我必须基于给定对象所在的类创建一个实例。就是我有: public void (Object obj) { Class<?> c = obj.getClass(); A<c> = ...; } public void(对象obj){ c类=obj.getClass(); A=。。。; } 然而,在第三行,Eclipse说c不能解析为类型。当我删除泛型参数时,我得到“A是原始类型。对泛型类型A的引用应该参数化。” 正确的方法是什么

我有一个泛型类a,我在一个方法中,我必须基于给定对象所在的类创建一个实例。就是我有:

public void (Object obj) {
  Class<?> c = obj.getClass();
  A<c> = ...;
}
public void(对象obj){
c类=obj.getClass();
A=。。。;
}
然而,在第三行,Eclipse说c不能解析为类型。当我删除泛型参数时,我得到“A是原始类型。对泛型类型A的引用应该参数化。”

正确的方法是什么

谢谢。

公共作废(对象B){
public <C> void (Object B) {
  Class<C> c = B.getClass();
  A<C> a = ...;
}
类c=B.getClass(); A=。。。; }
甚至更好

public <C> void (C B) {
  Class<C> c = B.getClass();
  A<C> a = ...;
}
公共无效(C B){
类c=B.getClass();
A=。。。;
}
或者如果你只是需要上课

public <C> void (Class<C> clazz) {
  A<C> a = ...;
}
public void(类clazz){
A=。。。;
}

c
是一个对象。您只能在定义泛型变量时给出类


因此
A
是正确的方法。

使用大写字母
B
作为对象引用会让Java开发人员感到非常困惑,尤其是在使用泛型时
obj
更好。详细说明@artbristol所说的内容,以大写字母(例如CamelCase)开头表示类。以小写字母开头(例如camelCase)表示变量
c
不是类型,
c
Class
类型的对象。塔哈,下面,有关于这个问题的答案。谢谢你的信息。修改了问题。对不起,我不能在这种情况下更改方法签名。没有别的办法吗?没有。如果方法或类没有在其签名中声明类型,则不能在方法中使用泛型body@Bohemian在第一种情况下调用方法时,编译器如何推断C类型?