我有兴趣做这样的事情:
public interface Foo {
public static "abstract" Bar SOME_BAR; // subclasses define one of these
}
和
public interface Foo {
public static "abstract" Baz buildABas(...); // subclasses define this method
}
没有静态,这是OOP 101,但它不能在标准的oop java中完成。我想知道是否有一个注释可以确保这种行为?
编辑:
我有兴趣指定一组选项,这些选项定义了如何为“可配置”对象设置内容。这可能是命令行标志等。
答案 0 :(得分:3)
我猜你想要的是拥有像
这样的方法public void callFoo(Class<?> clazz)
并且您希望确保clazz
具有方法public static void foo()
。
我想了一会儿,想到的任何技术都不会让你到那儿。您可以使用AnnotationProcessor
来确保使用特定注释注释的任何类具有特定方法或具有哪些(如果不具有,则生成编译错误)但是无法确保(在编译时)传递给Class
的{{1}}参数用注释注释。
这是一个让你半途而废的AnnotationProcessor:
callFoo(Class<?> clazz)
最终,我建议您允许它在运行时强制执行或重新设计代码,这样您就不需要使用静态方法。