久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

  • <tfoot id='Xy6lW'></tfoot>
    <i id='Xy6lW'><tr id='Xy6lW'><dt id='Xy6lW'><q id='Xy6lW'><span id='Xy6lW'><b id='Xy6lW'><form id='Xy6lW'><ins id='Xy6lW'></ins><ul id='Xy6lW'></ul><sub id='Xy6lW'></sub></form><legend id='Xy6lW'></legend><bdo id='Xy6lW'><pre id='Xy6lW'><center id='Xy6lW'></center></pre></bdo></b><th id='Xy6lW'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='Xy6lW'><tfoot id='Xy6lW'></tfoot><dl id='Xy6lW'><fieldset id='Xy6lW'></fieldset></dl></div>

    <small id='Xy6lW'></small><noframes id='Xy6lW'>

  • <legend id='Xy6lW'><style id='Xy6lW'><dir id='Xy6lW'><q id='Xy6lW'></q></dir></style></legend>

      <bdo id='Xy6lW'></bdo><ul id='Xy6lW'></ul>

        一個元素上有多個相同類型的注釋?

        Multiple annotations of the same type on one element?(一個元素上有多個相同類型的注釋?)

          1. <small id='XpOKT'></small><noframes id='XpOKT'>

                <bdo id='XpOKT'></bdo><ul id='XpOKT'></ul>
                    <tbody id='XpOKT'></tbody>
                  <tfoot id='XpOKT'></tfoot>
                1. <i id='XpOKT'><tr id='XpOKT'><dt id='XpOKT'><q id='XpOKT'><span id='XpOKT'><b id='XpOKT'><form id='XpOKT'><ins id='XpOKT'></ins><ul id='XpOKT'></ul><sub id='XpOKT'></sub></form><legend id='XpOKT'></legend><bdo id='XpOKT'><pre id='XpOKT'><center id='XpOKT'></center></pre></bdo></b><th id='XpOKT'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='XpOKT'><tfoot id='XpOKT'></tfoot><dl id='XpOKT'><fieldset id='XpOKT'></fieldset></dl></div>

                2. <legend id='XpOKT'><style id='XpOKT'><dir id='XpOKT'><q id='XpOKT'></q></dir></style></legend>
                3. 本文介紹了一個元素上有多個相同類型的注釋?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  我試圖在單個元素上添加兩個或多個相同類型的注釋,在本例中是一個方法.這是我正在使用的大致代碼:

                  public class Dupe {公共@interface Foo {字符串條();}@Foo(bar="one")@Foo(bar="兩個")公共無效哈哈(){}}

                  編譯上面的時候,javac報錯注解:

                  <上一頁>max@upsight:~/work/daybreak$ javac Dupe.javaDupe.java:5:重復注釋

                  難道就不能像這樣重復注釋嗎?學究起來,上面的兩個@Foo 實例不是因為內容不同而不同嗎?

                  如果上述方法不可行,有哪些潛在的解決方法?

                  更新:我被要求描述我的用例.來了.

                  我正在構建一種語法糖化機制,將 POJO映射"到 MongoDB 等文檔存儲.我想允許將索引指定為 getter 或 setter 上的注釋.這是一個人為的例子:

                  公共類員工{私人名單<項目>項目;@Index(expr = "project.client_id")@Index(expr = "project.start_date")公開列表<項目>getProjects() { 返回項目;}}

                  顯然,我希望能夠通過 Project 的各種屬性快速找到 Employee 的實例.我可以使用不同的 expr() 值指定 @Index 兩次,或者采用接受的答案中指定的方法.盡管 Hibernate 做到了這一點并且它不被認為是 hack,但我認為至少允許在單個元素上具有多個相同類型的注釋仍然是有意義的.

                  解決方案

                  注意:由于 Java 8 引入了 @Repeatable 批注(請參閱 @mernst 的回答),此答案已部分過時.但是仍然需要 @Foos 容器注釋和專用處理.

                  不允許使用兩個或多個相同類型的注釋.但是,您可以這樣做:

                  public @interface Foos {Foo[] 值();}//Java 8 之前@Foos({@Foo(bar=一個"), @Foo(bar=兩個")})公共無效哈哈(){}//在@Foo 上發布帶有@Repeatable(Foos.class) 的Java 8@Foo(bar=一個") @Foo(bar=兩個")公共無效哈哈(){}

                  您需要專門處理代碼中的 Foos 注釋.

                  I'm attempting to slap two or more annotations of the same type on a single element, in this case, a method. Here's the approximate code that I'm working with:

                  public class Dupe {
                      public @interface Foo {
                        String bar();
                      }
                  
                      @Foo(bar="one")
                      @Foo(bar="two")
                      public void haha() {}
                  }
                  

                  When compiling the above, javac complains about a duplicate annotation:

                  max@upsight:~/work/daybreak$ javac Dupe.java 
                  Dupe.java:5: duplicate annotation
                  

                  Is it simply not possible to repeat annotations like this? Pedantically speaking, aren't the two instances of @Foo above different due to their contents being different?

                  If the above isn't possible, what are some potential workarounds?

                  UPDATE: I've been asked to describe my use case. Here goes.

                  I'm building a syntax sugarish mechanism to "map" POJOs to document stores such as MongoDB. I want to allow indexes to be specified as annotations on the getters or setters. Here's a contrived example:

                  public class Employee {
                      private List<Project> projects;
                  
                      @Index(expr = "project.client_id")
                      @Index(expr = "project.start_date")
                      public List<Project> getProjects() { return projects; }
                  }
                  

                  Obviously, I want to be able to quickly find instances of Employee by various properties of Project. I can either specify @Index twice with different expr() values, or take the approach specified in the accepted answer. Even though Hibernate does this and it's not considered a hack, I think it still makes sense to at least allow having multiple annotations of the same type on a single element.

                  解決方案

                  Note: This answer is partially outdated since Java 8 introduced the @Repeatable annotation (see answer by @mernst). The need for a @Foos container annotation and dedicated handling still remain though.

                  Two or more annotations of same type aren't allowed. However, you could do something like this:

                  public @interface Foos {
                      Foo[] value();
                  }
                  
                  // pre Java 8
                  @Foos({@Foo(bar="one"), @Foo(bar="two")})
                  public void haha() {}
                  
                  // post Java 8 with @Repeatable(Foos.class) on @Foo
                  @Foo(bar="one") @Foo(bar="two")
                  public void haha() {}
                  

                  You'll need dedicated handling of Foos annotation in code though.

                  這篇關于一個元素上有多個相同類型的注釋?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  quot;Char cannot be dereferencedquot; error(“Char 不能被取消引用錯誤)
                  Java Switch Statement - Is quot;orquot;/quot;andquot; possible?(Java Switch 語句 - 是“或/“和可能的?)
                  Java Replace Character At Specific Position Of String?(Java替換字符串特定位置的字符?)
                  What is the type of a ternary expression with int and char operands?(具有 int 和 char 操作數的三元表達式的類型是什么?)
                  Read a text file and store every single character occurrence(讀取文本文件并存儲出現的每個字符)
                  Why do I need to explicitly cast char primitives on byte and short?(為什么我需要在 byte 和 short 上顯式轉換 char 原語?)

                  • <bdo id='DvNJr'></bdo><ul id='DvNJr'></ul>
                      <tbody id='DvNJr'></tbody>
                    <i id='DvNJr'><tr id='DvNJr'><dt id='DvNJr'><q id='DvNJr'><span id='DvNJr'><b id='DvNJr'><form id='DvNJr'><ins id='DvNJr'></ins><ul id='DvNJr'></ul><sub id='DvNJr'></sub></form><legend id='DvNJr'></legend><bdo id='DvNJr'><pre id='DvNJr'><center id='DvNJr'></center></pre></bdo></b><th id='DvNJr'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='DvNJr'><tfoot id='DvNJr'></tfoot><dl id='DvNJr'><fieldset id='DvNJr'></fieldset></dl></div>

                        <small id='DvNJr'></small><noframes id='DvNJr'>

                          1. <tfoot id='DvNJr'></tfoot>
                          2. <legend id='DvNJr'><style id='DvNJr'><dir id='DvNJr'><q id='DvNJr'></q></dir></style></legend>
                            主站蜘蛛池模板: 欧美激情在线精品一区二区三区 | 亚洲小视频在线播放 | 亚洲视频在线观看一区二区三区 | 精品国产乱码久久久久久果冻传媒 | 国产欧美一区二区三区日本久久久 | 三级国产三级在线 | 欧美日韩一区二区三区在线观看 | 欧美日韩一区二区三区视频 | 欧美精品一 | 国产日韩欧美一区二区 | 99久久婷婷国产综合精品电影 | 99re6在线视频精品免费 | 日韩一级免费看 | 狠狠干网站 | 国产在线一区二区三区 | 在线一级片 | 热99| 欧美xxxx在线 | 成人教育av | 国产精品亚洲一区二区三区在线观看 | 成人午夜电影网 | 国产精品久久久久久久久图文区 | 18av在线播放 | 91看片网址| 天天天操 | 国产高清视频在线观看 | 中文字幕在线观 | 欧美激情欧美激情在线五月 | 成人片免费看 | 久久国产精品免费一区二区三区 | 欧美久久久 | av天空 | 日韩在线 | 久久在线看| 国产精品99免费视频 | 国产精品乱码一区二区三区 | 午夜精品 | 国产福利在线视频 | 天堂成人国产精品一区 | 午夜羞羞 | 久久国产一区二区 |