Tag: 注释

如何在Java中构建时使用注释动态生成代码?

我正在寻找生成代码的解决方案。 我用谷歌搜索,搜索SO和一些博客,但我找不到一个好的解决方案。 我想在我的类上添加一个注释,在编译时,一些方法和属性会自动添加到类中。 我正在寻找的解决方案的要点: 生成的代码可自定义(强制) 不需要像apt这样的外部工具(强制性) 仅限JDK,没有第三方框架( 强制选项) 注释名称可自定义(可选) 例如 : @Aliasable public class MyClass { //Some properties // Contructor … // Some methods } 编译后我的类看起来像这样: public class MyClass { //Some properties private String alias; // Contructor … // Some methods public String getAlias() { return alias; } public void setAlias(String alias) { this.alias=alias; } […]

org.hibernate.MappingException:未知实体

我正在尝试使用Beginning Hibernate第二版,而我却试图将简单的工作示例与HSQLDB放在一起。 当我运行ant populateMessages ,我得到了 [java] org.hibernate.MappingException: Unknown entity: sample.entity.Message [java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:194) [java] at org.apache.tools.ant.taskdefs.Java.run(Java.java:747) … 这是我得到的: Message.java package sample.entity; import org.hibernate.annotations.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; @Entity public class Message { private String messageText; private Integer id; public Message( String messageText ) { this.messageText = messageText; } public Message() { } public […]

在多对多单向映射中保留枚举集

我正在使用带有注释的Hibernate 3.5.2-FINAL来指定我的持久性映射。 我正在努力建模应用程序和一组平台之间的关系。 每个应用程序都可用于一组平台。 从我所做的所有阅读和搜索中,我认为我需要将平台枚举类保持为实体,并使用连接表来表示多对多关系。 我希望关系在对象级别是单向的,也就是说,我希望能够获得给定应用程序的平台列表,但我不需要找出给定平台的应用程序列表。 这是我的简化模型类: @Entity @Table(name = “TBL_PLATFORM”) public enum Platform { Windows, Mac, Linux, Other; @Id @GeneratedValue @Column(name = “ID”) private Long id = null; @Column(name = “NAME”) private String name; private DevicePlatform() { this.name = toString(); } // Setters and getters for id and name… } @Entity @Table(name = “TBL_APP”) […]

关于实例创建的Java 8注释

在Javadocs for Annotations中,它声明以下内容可以用Java 8编写: new @Interned MyObject(); 无论如何都要从通过reflection注释的对象中检索注释@Interned? 我熟悉从方法,字段,类等中检索注释的典型方法,但我想知道在Java 8中是否可以在运行时将特定实例与注释相关联。

我可以让Java 5忽略@Override错误吗?

可能重复: 为什么Eclipse会在接口方法上抱怨@Override? 我有一些使用Eclipse和Java 6 SDK编写的Java代码,因此实现接口的方法使用@Override注释 – 这是一个在Java 6中合法但在Java 5中不合法的注释。 我想使用Java 5 SDK(Mac OS X 10.5上的javac编译相同的代码。 除了@Override注释之外,所有内容都编译并运行正常。 有没有什么方法可以让javac忽略这个项目的@Override注释,或者是唯一能够将它们全部删除的解决方案?

注释变量可以在运行时确定吗?

我想知道我是否可以在运行时设置注释变量?

如何从代码中删除C风格的注释

我刚刚在这里读了一个新的问题,问我的标题基本上和我的一样。 这让我思考 – 并在网上搜索(当然,大多数点击指向SO)。 所以我认为 – 应该有一个简单的正则表达式能够从任何代码中删除C风格的注释。 是的,关于SO的问题/声明有答案,但是我发现的那些,都是不完整的和/或过于复杂的。 所以我开始尝试,并提出了一个适用于我能想象的所有类型代码的方法: (?:\/\/(?:\\\n|[^\n])*\n)|(?:\/\*(?:\n|\r|.)*?\*\/)|((“|’)(?:\\\\|\\\2|\\\n|[^\2])*?\2) 第一个替代检查双斜杠 //注释。 第二个是普通的/* comment */ 。 第三个是我在查找处理相同任务处理的其他正则表达式时遇到的问题 – 包含字符串之外的字符序列的字符串将被视为注释 。 这部分的作用是捕获捕获组1中的任何字符串,将捕获组2中的引号与引号匹配,直到字符串的结尾。 捕获组1应该保留在替换中,一切都被丢弃(替换为”” )留下未注释的代码:)。 这是regex101的C示例。 好的……所以这不是问题。 这是你认为的答案…… 你是对的。 那么……关于这个问题。 我错过了这个正则表达式错过的任何类型的代码吗? 它处理 多行评论 /* an easy one */ “行尾”评论 // Remove this 字符串中的注释 char array[] = “Following isn’t a comment // because it’s in a string /* […]

Java注释在方法之前和之后执行一些代码

我正在编写一个swing应用程序,并且我想在执行某些方法时使用’wait’光标。 我们可以这样做: public void someMethod() { MainUI.getInstance().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); //method code MainUI.getInstance().setCursor(Cursor.getDefaultCursor()); } 我想要实现的是一个java注释,它会在方法执行之前设置等待光标,并在执行后将其设置回正常状态。 所以前面的例子看起来像这样 @WaitCursor public void someMethod() { //method code } 我怎样才能做到这一点? 关于解决这个问题的其他变体的建议也是受欢迎的。 谢谢! PS – 我们在项目中使用Google Guice,但我不知道如何使用它来解决问题。 如果有人会向我提供类似问题的简单示例,那将非常有帮助

为什么嵌套类型看不到generics类型参数的注释?

我没有得到以下代码的行为: https : //gist.github.com/tomaszalusky/3e3777b4fd0c6096f3f707bb19b50b52 – 请参阅embedded: import java.lang.reflect.*; import java.util.*; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; public class AnnotationOnTypeArgument { @Target({ElementType.FIELD,ElementType.PARAMETER,ElementType.METHOD,ElementType.TYPE_USE}) @Retention(RetentionPolicy.RUNTIME) public @interface Anno { } interface Nested { } Toplevel toplevel; Nested nested; public static void main(String[] args) throws Exception { print(AnnotationOnTypeArgument.class.getDeclaredField(“toplevel”)); print(AnnotationOnTypeArgument.class.getDeclaredField(“nested”)); } private static void print(Field field) { AnnotatedType […]

如何在Java中注释对类的弃用?

我将弃用Java中的一个类。 @Deprecated class deprecatedClass 我有这个已弃用的类的列表, List listOfDeperecatedClass 那么我是否也需要为此列表添加@Deprecated标签? 编辑: @Deprecated应该有一个大写’D’。 请参阅: http : //docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html