Java 如何向参数为class<;的方法提供有效类;?扩展注释>;?
我有一种情况,我需要以编程方式设置一个参数为Java 如何向参数为class<;的方法提供有效类;?扩展注释>;?,java,spring,configuration,annotations,Java,Spring,Configuration,Annotations,我有一种情况,我需要以编程方式设置一个参数为Class的东西,这就是适合我的API(使用Eclipse和javac编译器): public注释( 收集你能发布一个SSCCE吗?因为你上面描述的场景应该可以很好地工作。当然,给我一些。我应该注意到,实际场景是这些场景的列表,但我不确定这会使事情复杂化。@Perception啊,列表上的类型擦除由于某种原因把事情搞砸了……列表就是失败的原因。但是我怎样才能解决它?刚刚开始工作,所以无法回答,但是修改后的问题+1。我无法更改内容,所以我必须使用非类型列
Class的东西,这就是适合我的API(使用Eclipse和javac编译器):
public注释(
收集你能发布一个SSCCE吗?因为你上面描述的场景应该可以很好地工作。当然,给我一些。我应该注意到,实际场景是这些场景的列表,但我不确定这会使事情复杂化。@Perception啊,列表上的类型擦除由于某种原因把事情搞砸了……列表就是失败的原因。但是我怎样才能解决它?刚刚开始工作,所以无法回答,但是修改后的问题+1。我无法更改内容,所以我必须使用非类型列表,但这是一种正确的方法,所以我会接受它。
<property name="annotation" value="javax.persistence.Entity" />
public class Stuff {
private List<Class<? extends Annotation>> annotations;
public List<Class<? extends Annotation>> getAnnotations() {
return annotations;
}
public void setAnnotations(List<Class<? extends Annotation>> annotations) {
this.annotations = annotations;
}
}
public class StuffTest {
@Test
public void test() {
new Stuff().setAnnotations(Collections.singletonList(javax.persistence.Entity.class));
// this does not compile
}
}
List list = new ArrayList();
list.add(javax.persistence.Entity.class);
stuff.setAnnotations(list);
public void setAnnotations(
Collection<? extends Class<? extends Annotation>> annotations) {