在Java中,可以使用类注释作为类型化方法参数。 例如 - 这是您的注释
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Entity {
}
然后
@Entity
public class Car {
...
}
然后再做
interface Persister {
void persist(Entity entity);
}
答案 0 :(得分:1)
你可以这样做,但它不会做你期望的。此持久化(实体)方法只能使用您的实体注释,而不是您要使用的类的实例。
相反,你可以做的是
interface Entity { }
interface Car extends Entity {
interface Persister {
void persist(Entity entity);
}
这将按预期工作,您可以将Car的实例传递给persist方法。
答案 1 :(得分:1)
你可以做到
public @interface Entity {
String name();
}
public class Car implements Entity{
public String name(){ return "car"; }
}
但这很奇怪。 Entity
应该是普通的界面。
虽然通过注释处理,我们可以要求方法的参数必须具有包含特定注释的静态类型。不确定是否有人这样做过。