标签: annotations

从 __future__ 导入注释

Python 文档 __future__

在 python 文档__future__中,下面有一个表格,它显示注释在 3.7.0b1 中“可选”和“在”4.0 中“强制”,但我仍然可以在 3.8.2 中使用注释而无需导入注释,那么它的用途是什么。

>>> def add_int(a:int, b:int) -> int:
...     return a + b
>>> add_int.__annotations__
{'a': <class 'int'>, 'b': <class 'int'>, 'return': <class 'int'>}
Run Code Online (Sandbox Code Playgroud)

我怀疑我不清楚这里“可选输入”和“强制输入”的含义

python annotations python-3.x

24
推荐指数
3
解决办法
2万
查看次数

什么是JUnit @Before和@Test

在java中使用Junit @Before@Test注释有什么用?如何在netbeans中使用它们?

java junit annotations

23
推荐指数
2
解决办法
8万
查看次数

iPhone Map Kit集群精确定位

关于iPhone Map Kit集群精确点:

我想要在地图上显示1000个标记但是它太多了,所以我想将它们聚类.

是否有可用的框架或概念证明?这可能还是已经完成了?

iphone google-maps annotations mapkit markerclusterer

23
推荐指数
4
解决办法
1万
查看次数

使用Javassist将注释添加到运行时生成的方法/类中

我正在使用Javassist生成一个foo带有方法的类,bar但我似乎无法找到一种方法来向方法添加注释(注释本身不是运行时生成的).我试过的代码看起来像这样:

ClassPool pool = ClassPool.getDefault();

// create the class
CtClass cc = pool.makeClass("foo");

// create the method
CtMethod mthd = CtNewMethod.make("public Integer getInteger() { return null; }", cc);
cc.addMethod(mthd);

ClassFile ccFile = cc.getClassFile();
ConstPool constpool = ccFile.getConstPool();

// create the annotation
AnnotationsAttribute attr = new AnnotationsAttribute(constpool, AnnotationsAttribute.visibleTag);
Annotation annot = new Annotation("MyAnnotation", constpool);
annot.addMemberValue("value", new IntegerMemberValue(ccFile.getConstPool(), 0));
attr.addAnnotation(annot);
ccFile.addAttribute(attr);

// generate the class
clazz = cc.toClass();

// length is zero
java.lang.annotation.Annotation[] annots = clazz.getAnnotations(); …
Run Code Online (Sandbox Code Playgroud)

java annotations javassist

23
推荐指数
1
解决办法
2万
查看次数

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

我正在寻找生成代码的解决方案.我用谷歌搜索,搜索SO和一些博客,但我找不到一个好的解决方案.

我想在我的类上添加一个注释,在编译时,一些方法和属性会自动添加到类中.

我正在寻找的解决方案的关键点:

  • 生成的代码可自定义(强制)
  • 没有apt必要调用外部工具(强制)
  • 仅限JDK,没有第三方框架(MANDATORY OPTIONAL)
  • 注释名称可自定义(可选)

例如 :

@Aliasable
public class MyClass {
//Some properties

// Contructor ...

// Some methods
}
Run Code Online (Sandbox Code Playgroud)

编译后我的类看起来像这样:

public class MyClass {
   //Some properties
   private String alias;

   // Contructor ...

   // Some methods
   public String getAlias() {
      return alias;
   }

   public void setAlias(String alias) {
      this.alias=alias;
   }
}
Run Code Online (Sandbox Code Playgroud)

编辑:
最后,我将我的第三个要求从MANDATORY转为OPTIONAL并选择了项目Lombok(与Maven和Eclipse轻松集成,几乎没有工作要做).

java annotations generated-code

23
推荐指数
2
解决办法
2万
查看次数

具有多个索引的主义2

我正在使用zend框架和doctrine2.1进行开发.

我从数据库生成了实体.

但问题是:Doctrine无法识别我的索引.它们根本没有在实体注释中标记.

当我去验证模式并从中转储sql时orm:schema-tool:update --dump-sql,生成sql以删除整个数据库中的所有索引.

我发现Doctrine有以下用于定义索引的注释:

indexes={@index(name="index_name",
                columns={"database_column1","database_column2"}
        )}
Run Code Online (Sandbox Code Playgroud)

但这允许我为多列定义一个索引,我真的不需要它.
我想要的是能够在多列上定义多个索引,每列一个索引.

有没有办法实现这个目标?有没有一种方法可以让我有一个定义多个索引的注释.

mysql indexing annotations doctrine-orm

23
推荐指数
2
解决办法
1万
查看次数

Java - 加载带注释的类

我知道有一套令人难以置信的工具可以在java中加载插件类,但今天我想到了一个想法.

如果我在包"org.home.junk"中有一堆带注释和未注释的类(注释带有注释"@AnnotatedClass"),并且那些类具有带注释"@AnnotatedMethod"的注释方法,该怎么办?

第一个问题:我可以在运行时获取该特定包中所有类的数组/集合,以便我可以检查哪个类被注释并创建它们的实例.(我知道如何检查Some.class是否有本指南的注释:http://isagoksu.com/2009/development/java/creating-custom-annotations-and-making-use-of-them/ )

第二个问题: - 如果我能在第一个问题上做我想做的事 - 那么最政治的方式是什么?

我相信这是可能的,因为我理解JUnit以类似的方式加载测试用例类.

如果这可以用最少的第三方库来完成也是很酷的,再次 - 如果可能的话:)

java annotations classloader

23
推荐指数
1
解决办法
2万
查看次数

@NamedQuery over @NamedNativeQuery

有没有使用任何好处@NamedQuery@NamedNativeQuery处于休眠或反之亦然.我不能发现确切的差异或在什么背景下,我们应该使用@NamedQuery@NamedNativeQuery

提前致谢.

java annotations hibernate hql

23
推荐指数
3
解决办法
2万
查看次数

@code java注释做了什么

我尝试在Oracle文档中搜索 @code java注释的功能.

从前一个问题开始,我意识到它与html有关,但我不确定究竟是什么......

说默认情况下javadoc被解析为HTML是否正确...但是将@code注释放在一些javadoc文本旁边会表明它应该被视为代码,而不是以通常的方式解析/呈现?例如:

    /**
    *This is how to declare an int variable {@code int var=1;}
    */
Run Code Online (Sandbox Code Playgroud)

这是一个适当的使用例子吗?

java annotations

23
推荐指数
1
解决办法
2万
查看次数

有没有办法将常量传递给Groovy中的注释?

在Java中,可以将常量String作为参数传递给注释,但我无法弄清楚如何在Groovy中执行相同的操作.

例如:

    @Retention(RetentionPolicy.RUNTIME)
    @Target(value=[ElementType.METHOD])
    public @interface MyGroovyAnnotation {
        String value()
    }

    class MyGroovyClass {

        public static final String VALUE = "Something"

        @MyGroovyAnnotation(value=VALUE)
        public String myMethod(String value) {
            return value    
        }
    }
Run Code Online (Sandbox Code Playgroud)

这里,在方法myMethod注释的地方@MyGroovyAnnotation,如果我传递一个字符串文字@MyGroovyAnnotation(value="Something"),它可以很好地工作,但是如果我尝试VALUE在上面的例子中传递,我得到:

来自Eclipse:

Groovy:Expected 'VALUE' to be an inline constant of type java.lang.String in @MyGroovyAnnotation
Run Code Online (Sandbox Code Playgroud)

从GroovyConsole运行:

expected 'VALUE' to be an inline constant of type java.lang.String not a field expression in @MyGroovyAnnotation
 at line: 20, column: 31

Attribute 'value' should have type …
Run Code Online (Sandbox Code Playgroud)

groovy annotations

23
推荐指数
2
解决办法
8225
查看次数