Java-如何在方法中创建参数,以接受.class或扩展.class的类?

Java-如何在方法中创建参数,以接受.class或扩展.class的类?,java,eclipse,class,Java,Eclipse,Class,如何在接受.class或扩展.class的方法中创建参数 我正在创建一个方法,该方法将在.class中执行方法“foe() 这就是为什么我需要一个参数,它将是一个.class,或者它将扩展一个.class class B extends A{} //And abstract class A{} 这不适用于A类,但适用于B类: public void test(Class<? extends A> arg){} public void test(A arg){} 谢谢你的帮助!:

如何在接受.class或扩展.class的方法中创建参数

我正在创建一个方法,该方法将在.class中执行方法“foe()

这就是为什么我需要一个参数,它将是一个.class,或者它将扩展一个.class

class B extends A{}
//And
abstract class A{}
这不适用于A类,但适用于B类:

public void test(Class<? extends A> arg){}
public void test(A arg){}

谢谢你的帮助!:)

向您传达此信息的最后努力:
您现在有以下选项

public void testClass(Class<? extends A> arg) {}
public void testInstance(A arg) {}

...

testInstance(new A()); // works    
testInstance(new B()); // works

testClass(A.class); // works
testClass(B.class); // works

公共void测试类(是我吗?我不知道你的问题是什么,也不知道你在问什么。你想把A和B对象传递到你的方法中还是A和B类中?这个问题看起来是一个不清楚的类型问题,你想告诉我们更多关于你的整体问题,并展示具体的真实代码,而不是某种类型的代码。中间的代码是IPET不编译,第三个代码段完全按照您的要求执行,您可以传入A或B实例。或者,第二个代码段应在替换
后工作)
使用
@HovercraftFullOfEels是的,这不起作用,但我仍然不确定他说的是传递实际的类引用还是这些类的实例。我的意思是第三个适用于类的实例,第二个适用于
类的实例。@PiotrOsada你一直使用一个非常错误的术语逻辑。
A A=new A();
:定义变量
A
,该变量是A的实例。您可以将
A
传递给方法
foo(A)
。如果
b
是用
b=new b()定义的,您也可以将
b
传递给该方法;
,因为B扩展了A,
B
因此是
A
的一个实例。你不能传递A.class,也不能传递B.class,因为A.class是类的一个实例(唯一的实例)。类型类和类型A是完全不同的东西。没有“扩展A.class”这样的事情,因为A.class不是一个类型。它是一个对象。请使用它来提供应该运行的实际示例。我必须对此进行投票,因为它确实回答了所有问题(令人困惑)OP到目前为止发布的问题,我感谢您在这一令人沮丧的努力中所做的努力。不幸的是,OP似乎实际上想要一个接受列表和列表的方法。用列表替换类回答了他的问题。
public <T extends A> void testInstanceGen(T arg) {}
public <T extends A> void testClassGen(Class<T> arg) {}

...

testInstanceGen(new A()); // works    
testInstanceGen(new B()); // works

testClassGen(A.class); // works
testClassGen(B.class); // works