Tag: 注释

注释不是从接口方法inheritance的

我有一个带注释方法的接口。 注释用@Inherited标记,所以我希望实现者inheritance它。 但事实并非如此: 码: import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.reflect.Method; import java.util.Arrays; public class Example { public static void main(String[] args) throws SecurityException, NoSuchMethodException { TestInterface obj = new TestInterface() { @Override public void m() {} }; printMethodAnnotations(TestInterface.class.getMethod(“m”)); printMethodAnnotations(obj.getClass().getMethod(“m”)); } private static void printMethodAnnotations(Method m) { System.out.println(m + “: ” + Arrays.toString(m.getAnnotations())); } […]

Struts2 – 通过动态参数的注释转发

我正在尝试使用动态参数将动作结果转发给另一个动作。 传递给第二个动作的参数具有””值。 @Result(name = “success”, location = “edit_service_subscribers”, type = “redirect”, params = {“selectedServiceId”, “%{serviceId}”} ) 我声明了private String serviceId; 在第一个动作中使用getter和setter,以及private String selectedServiceId; 在第二个动作中使用getter和setter。 问题是填充参数的值。 但是哪里? 如何将动作类中的全局变量值传递给重定向参数?

Hibernate ManyToMany和超类映射问题

我需要在Hibernate中创建一个关系,链接三个表:Survey,User和Group。 用户或组可以看到调查,组是多个用户的forms。 我的想法是为User和Group创建一个超类,并在该超类和Survey之间创建一个ManyToMany关系。 我的问题是Group,不是映射到表,而是映射到视图,所以我不能在几个表中拆分Group的字段 – 如果我创建了一个公共超类,会发生这种情况。 我考虑过创建一个通用接口,但不允许映射到它们。 我可能最终会找到一个两个关系的解决方案(Survey-User和Survey-Group),但我不太喜欢这种方法。 我还想过创建一个看起来像这样的表: Survey Id | ElementId | Type ElementId将是Group或UserId,类型是它的类型。 有谁知道如何使用hibernate注释实现它? 还有其他想法吗? 非常感谢

需要将多个columNames映射到Univocity中的单个字段

class MyPOJO implements Serializable { private static final long serialVersionUID = 1L; @Parsed(field = “UniqueCode”) private String code; @Parsed(field = “Name”) private String name; @Parsed(field = “dogId”) private String someOtherId; //——Getters and Setters——- public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getName() { return name; […]

在Java中创建带注释的对象时收到通知

意图 我有一个自定义的Java注释: @DynamicField public class RESTEndpointInvoker { @DynamicField(key=”httpTimeout”) private long httpTimeout = 8000L; public void setHttpTimeout(long t){ this.httpTimeout = t; } 当有人更改与带注释的字段对应的文件或数据库中的值时,为具有该属性的所有实例调用setter以反映新值。 因此,我需要跟踪在地图或其他内容中使用注释的所有实例,以便在外部发生更改时更新它们: Map<Key,List> 注意:我打算使用某种forms的WeakHashMap()来避免保持对陈旧实例的引用。 题 如果我不控制何时以及如何创建这些实例,如何跟踪带注释但任意的实例? 理想情况下,我希望在创建实例时收到通知。 试着 我可以扫描类路径中的类类型 ,然后在每个类中搜索带注释的字段(见下文),但我不确定如何跟踪实例。 //get classes with annotation Reflections r = new Reflections(“com.foo”, new TypeAnnotationsScanner()); Set<Class> allAnnotated = r.getTypesAnnotatedWith(DynamicField.class); //identify fields for(Class cls : allAnnotated){ for(Field field : […]

使用javareflection在scala中获取具有特定注释的方法参数

我使用aspectj在scala使用aop。 我有一个方法 def delete(@Id id:Long, name:String) 如何在Aspect文件中获取id的值。 @Around(“execution (* com.myapp.Employee.delete(..))”) def message(joinPoint: ProceedingJoinPoint): Object = { val methodSignature =joinPoint.getSignature.asInstanceOf[MethodSignature] //get the value of the field id joinPoint.proceed } 我无法获得价值。 如果我试试 val res = methodSignature.getMethod.getParameterAnnotations res.map(annotations => println(“size = “+annotations.length)) 始终将大小打印为0。 编辑:现在我正确的大小。 该方法是object 。 但我认为javareflection读取object存在一些问题。 我换了class ,现在能够得到注释。 但是,如何获取使用该注释注释的参数?

从版本2.11开始,scalareflectionfunction(特别是wrt注释)的(当前)状态是什么?

scala似乎是JVM世界的一个很好的补充。 它让我想起了嵌套在JVM世界中的C ++,C#和Swift的奇怪混合体。 但是,由于缺少或过时的文档,许多scala的function可能无法访问。 就其reflection能力而言,这似乎尤其如此。 例如,我正在评估是否可以使用scala注释在运行时或编译时扩充scala类。 我使用的是最新的scala版本2.11。 作为一个激励性的例子,让我说我创建一个case class SimpleAnnotation() extends StaticAnnotation 。 我想在运行时找到带有该注释的所有case class 。 这可能是注释最典型和最简单的用例。 在C#和Java中,在运行时确定给定的类是否被注释是相对简单的。 这是一个规范的用例,带有规范的答案。 然而,在scala中,我不清楚我应该做些什么来实现这种行为,甚至是否可能。 特别是,在scala注释和reflection上扫描一些以前的材料后,我想知道: 这可能吗? 这只能在运行时或complile时间吗? 这只能在scala版本2.10之前或之后实现吗? 这只能在scala类上使用Java注释吗? 为什么getClass[AnnotatedClass].getAnnotations返回如此看似乱码的信息? 为什么宏和reflection似乎在scala中混淆了? 任何指导都表示赞赏……我确信我不是唯一一个感到困惑的人。

从java transient或@Transient注释隐藏JSON序列化属性的最佳方法?

在Spring中,ExtJs应用程序我使用JSON序列化java对象。 当我想从JSON中排除属性时,我使用@Transient注释。 我看到java transient关键字也适用于此。 我想知道哪些在性能视角和安全性方面最好,更有效。

Hibernate Formula Annotation – MySql函数:INTERVAL,DAY

我有代码: @Id @Column(name = “id”) @GeneratedValue private int id; @Formula(value = “(SELECT count(history.city_id) FROM history where history.ts > (now() – INTERVAL 30 DAY) and history.city_id = id)”) private int last30daysUpdates; 所以,hiberante将这个公式解析为: …where history.ts > ( now() – entitycity0_.INTERVAL 30 entitycity0_.DAY ) … 而错误是: 您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在’30 entitycity0_.DAY附近使用正确的语法 我怎么说hibernate INTERVAL和DAY是MysqL的function? 可能吗? 谢谢。

Guice:使用属性绑定注释

现在我正在阅读Guice的官方文档,但我有一些与Binding Annotation章节相关的问题。 这解释了“带属性的注释”。 但是,我不确定解释。 绑定注释与属性 Guice支持绑定具有属性值的注释。 在极少数情况下,您需要这样的注释: 创建注释@interface。 创建一个实现注释接口的类。 遵循Annotation Javadoc中指定的equals()和hashCode()指南。 将此实例传递给annotatedWith()绑定子句。 我不明白这个解释。 有什么解释意图? 我学习了两个注释,例如@Paypal(在本文档中)和@name。 但是,如果我想在同一个类中使用两个以上的依赖项,那么我们只能用这两个注释来实现? 现在我很困惑,有人可以解释一下吗?