相关疑难解决方法(0)

如何创建注释的实例

我正在尝试做一些Java注释魔术.我必须说我仍在追赶注释技巧,而且某些事情对我来说仍然不太清楚.

所以...我有一些带注释的类,方法和字段.我有一个方法,它使用反射对类运行一些检查并将一些值注入到类中.一切正常.

但是,我现在面临的情况是我需要一个注释的实例(可以这么说).所以...注释不像常规接口,你不能做一个类的匿名实现.我知道了.我在这里看了一些关于类似问题的帖子,但我似乎无法找到我正在寻找的答案.

我基本上想得到一个注释的实例,并能够使用反射设置它的一些字段(我想).有没有办法做到这一点?

java reflection annotations

52
推荐指数
5
解决办法
3万
查看次数

Java注释可以进行单元测试吗?

我最近开始创建自己的注释并运行TDD/BDD,我想要对我的注释进行单元测试,为它们创建一个清晰的规范.然而,由于注释基本上只是花哨的界面,据我所知,这些界面无法直接实例化,是否有任何方法缺乏反映单元测试注释?

java tdd bdd annotations

14
推荐指数
2
解决办法
6064
查看次数

是否可以在给定Class <?的情况下实例化Java Annotation?扩展注释>?

我有一个Class<? extends Annotation>并且尝试过调用newInstance()但是Java因为我无法实例化接口的明显原因而对我大吼大叫.但我知道像EasyMock这样的框架完全能够实例化接口.Annotation从我的身上得到一个完全愚蠢的实例需要Class什么?

java reflection annotations

5
推荐指数
2
解决办法
6670
查看次数

Guice 多个注释

我有一个名为 的接口StatsStore。我有这家商店的 2 个实现。InMemoryStatsStore一个名为and的内存中 SQL 实现SqlStatsStore。为了注入它们,我创建了 2 个注释@InMemoryStore@SqlStore. 注射是:

bind(StatsStore.class)
    .annotatedWith(InMemoryStore.class)
    .to(InMemoryStatsStore.class);

bind(StatsStore.class)
    .annotatedWith(SqlStore.class)
    .to(SqlStatsStore.class);   
Run Code Online (Sandbox Code Playgroud)

现在我想添加一层新的注释来分隔 和 ,InMemoryStringStoreInMemoryNumberStore我无法向绑定行添加多个注释,例如以下内容无法编译:

bind(StatsStore.class)
    .annotatedWith(InMemoryStore.class)
    .annotatedWith(NumberStoreAnnotation.class) // using named doesn't work as well
    .to(InMemoryNumberStore.class);  
Run Code Online (Sandbox Code Playgroud)

如何在不使用单个命名注释的情况下添加多个注释,添加的层越多,这将变得相当复杂?

我想到的另一个解决方案是注入两次:

bind(StatsStore.class)
    .annotatedWith(InMemoryStore.class)
    .to(InMemoryStatsStore.class);

 bind(InMemoryStatsStore.class)
    .annotatedWith(NumberStoreAnnotation.class)
    .to(InMemoryNumberStore.class);
Run Code Online (Sandbox Code Playgroud)

谢谢大家。

java guice

5
推荐指数
1
解决办法
4551
查看次数

标签 统计

java ×4

annotations ×3

reflection ×2

bdd ×1

guice ×1

tdd ×1