{"id":332179,"date":"2022-04-20T15:01:14","date_gmt":"2022-04-20T15:01:14","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=332179"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=332179","title":{"rendered":"<span>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0432 JAVA<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h3>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u044f<\/h3>\n<ul>\n<li>\n<p>\u0421\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u0443\u0440\u0441\u0430 \u043e\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Oracle\u00a0<a href=\"https:\/\/docs.oracle.com\/javase\/tutorial\/java\/index.html\" rel=\"noopener noreferrer nofollow\">&#171;Learning the Java language&#187;<\/a>, \u0440\u0430\u0437\u0434\u0435\u043b\u0430 &#171;Annotations&#187;.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 \u0442\u0435\u043c, \u043a\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043b\u0441\u044f \u0441 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u043c\u0438 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0438 \u0445\u043e\u0447\u0435\u0442 \u0443\u0433\u043b\u0443\u0431\u0438\u0442\u044c \u0438\u043b\u0438 \u043e\u0441\u0432\u0435\u0436\u0438\u0442\u044c \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u043d\u0430\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<h3>\u041e\u0441\u043d\u043e\u0432\u044b \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439<\/h3>\n<h4>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435<\/h4>\n<p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0&#8212;\u00a0\u044d\u0442\u043e\u00a0\u0444\u043e\u0440\u043c\u0430\u00a0\u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445.\u00a0\u041e\u043d\u0438\u00a0\u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u00a0\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e\u00a0\u043e\u00a0\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435,\u00a0\u043f\u0440\u0438\u00a0\u0442\u043e\u043c\u00a0\u0441\u0430\u043c\u0438\u00a0\u0447\u0430\u0441\u0442\u044c\u044e\u00a0\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b\u00a0\u043d\u0435\u00a0\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f.<\/p>\n<h4>\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435<\/h4>\n<ul>\n<li>\n<p><strong>\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430.<\/strong>\u00a0\u041c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c \u0434\u043b\u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u043f\u043e\u0434\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f.<\/strong>\u00a0\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u043e\u0434, XML-\u0444\u0430\u0439\u043b\u044b \u0438 \u0442.\u043f. \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/strong>\u00a0\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441<\/h4>\n<p>\u041d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f\u00a0\u0441\u00a0<code>@<\/code>,\u00a0\u043c\u043e\u0433\u0443\u0442\u00a0\u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u00a0\u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u044e\u0442\u0441\u044f\u00a0\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"java\">@Author(     name = \"Benjamin Franklin\"     date = \"3\/27\/2003\" ) class MyClass{...}<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438\u00a0\u0442\u0430\u043a\u043e\u0439\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u00a0\u043e\u0434\u0438\u043d,\u00a0\u0435\u0433\u043e\u00a0\u0438\u043c\u044f\u00a0\u043c\u043e\u0436\u043d\u043e\u00a0\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c:<\/p>\n<pre><code class=\"java\">@SupressWarnings(\"unchecked\") void MyMethod() {...}<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438\u00a0\u0442\u0430\u043a\u0438\u0445\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432\u00a0\u043d\u0435\u0442,\u00a0\u043c\u043e\u0436\u043d\u043e\u00a0\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u00a0\u0441\u043a\u043e\u0431\u043a\u0438.\u00a0\u041c\u043e\u0436\u043d\u043e\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u00a0\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439\u00a0\u0432\u00a0\u043e\u0434\u043d\u043e\u043c\u00a0\u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0438:<\/p>\n<pre><code class=\"java\">@Author(name = \"Jane Doe\") @EBook  class MyClass { ... }<\/code><\/pre>\n<p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u043c\u043e\u0433\u0443\u0442\u00a0\u0431\u044b\u0442\u044c\u00a0\u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u043c\u0438\u0441\u044f.<\/p>\n<pre><code class=\"java\">@Author(name = \"Jane Doe\") @Author(name = \"John Smith\") class MyClass { ... }<\/code><\/pre>\n<h4>\u0413\u0434\u0435 \u0432 \u043a\u043e\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438<\/h4>\n<p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f\u00a0\u0441\u00a0\u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438\u00a0\u043a\u043b\u0430\u0441\u0441\u043e\u0432,\u00a0\u043f\u043e\u043b\u0435\u0439\u00a0\u0438\u00a0\u0434\u0440\u0443\u0433\u0438\u0445\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432\u00a0\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/p>\n<p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438,\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435\u0441\u044f\u00a0\u0441\u00a0\u0442\u0438\u043f\u0430\u043c\u0438,\u00a0\u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u043c\u0438\u00a0\u0442\u0438\u043f\u043e\u0432.\u00a0\u041f\u0440\u0438\u043c\u0435\u0440\u044b\u00a0\u0442\u0430\u043a\u0438\u0445\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439:<\/p>\n<ul>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043a\u043b\u0430\u0441\u0441\u0430:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"java\">new @Interned MyObject(); <\/code><\/pre>\n<ul>\n<li>\n<p>\u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043a \u0442\u0438\u043f\u0443:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"java\">myString = (@NonNull String) str;<\/code><\/pre>\n<ul>\n<li>\n<p>\u0418\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"java\">class UnmodifiableList&lt;T>     implements @Readonly List&lt;@Readonly T> { ... }<\/code><\/pre>\n<ul>\n<li>\n<p>\u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0431\u0440\u043e\u0441\u0430\u0435\u043c\u044b\u0445 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"java\">void monitorTemperature() throws     @Critical TemperatureException { ... }<\/code><\/pre>\n<h3>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438<\/h3>\n<h4>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441<\/h4>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442\u00a0\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u00a0\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430.\u00a0\u041e\u043d\u043e\u00a0\u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f\u00a0\u0441\u00a0<code>@Interface<\/code>,\u00a0\u0430\u00a0\u0435\u0433\u043e\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b\u00a0\u043f\u043e\u0445\u043e\u0436\u0438\u00a0\u043d\u0430\u00a0\u043c\u0435\u0442\u043e\u0434\u044b,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0435\u00a0\u043c\u043e\u0433\u0443\u0442\u00a0\u0438\u043c\u0435\u0442\u044c\u00a0\u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0435\u00a0\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<h4>\u041f\u0440\u0438\u043c\u0435\u0440<\/h4>\n<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c,\u00a0\u0432\u00a0\u043a\u0430\u043a\u043e\u0439-\u0442\u043e\u00a0IT-\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438\u00a0\u0442\u0435\u043b\u0430\u00a0\u0432\u0441\u0435\u0445\u00a0\u043a\u043b\u0430\u0441\u0441\u043e\u0432\u00a0\u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f\u00a0\u0441\u00a0\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432,\u00a0\u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445\u00a0\u0432\u0430\u0436\u043d\u0443\u044e\u00a0\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e:<\/p>\n<pre><code class=\"java\">public class Generation3List extends Generation2List {       \/\/ Author: John Doe      \/\/ Date: 3\/17\/2002     \/\/ Current revision: 6      \/\/ Last modified: 4\/12\/2004      \/\/ By: Jane Doe      \/\/ Reviewers: Alice, Bill, Cindy      \/\/ class code goes here  }<\/code><\/pre>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438,\u00a0\u043a\u043e\u0442\u043e\u0440\u0430\u044f\u00a0\u0437\u0430\u043c\u0435\u043d\u0438\u0442\u00a0\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438:<\/p>\n<pre><code class=\"java\">@interface ClassPreamble {     String author();     String date();      int currentRevision() default 1;      String lastModified() default \"N\/A\";     String lastModifiedBy() default \"N\/A\";      \/\/ \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432     String[] reviewers();   }<\/code><\/pre>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u00a0\u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438:<\/p>\n<pre><code class=\"java\">@ClassPreamble (      author = \"John Doe\",      date = \"3\/17\/2002\",      currentRevision = 6,      lastModified = \"4\/12\/2004\",      lastModifiedBy = \"Jane Doe\",      reviewers = {\"Alice\", \"Bob\", \"Cindy\"}  )  public class Generation3List extends Generation2List { ... ... } <\/code><\/pre>\n<p><strong>\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435:<\/strong>\u00a0\u0434\u043b\u044f\u00a0\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u0432\u00a0Javadocs\u00a0\u043d\u0443\u0436\u043d\u043e\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u00a0@Documented:<\/p>\n<pre><code class=\"java\">import java.lang.annotation.*;   @Documented  @interface ClassPreamble {      \/\/ \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438  }<\/code><\/pre>\n<h3>\u041f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438<\/h3>\n<p>\u0412\u00a0Java\u00a0\u0435\u0441\u0442\u044c\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438,\u00a0\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435\u00a0\u0437\u0430\u0440\u0430\u043d\u0435\u0435.\u00a0\u0427\u0430\u0441\u0442\u044c\u00a0\u0438\u0437\u00a0\u043d\u0438\u0445\u00a0\u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u00a0\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e\u00a0\u0434\u043b\u044f\u00a0\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430,\u00a0\u0447\u0430\u0441\u0442\u044c\u00a0\u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f\u00a0\u043a\u00a0\u0434\u0440\u0443\u0433\u0438\u043c\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u043c.<\/p>\n<h4>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435\u0441\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c<\/h4>\n<p>\u0420\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f\u00a0\u0432\u00a0\u043f\u0430\u043a\u0435\u0442\u0435\u00a0java.lang.<\/p>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/Deprecated.html\" rel=\"noopener noreferrer nofollow\">@Deprecated<\/a><\/p>\n<p>\u041f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0439\u00a0\u044d\u0442\u043e\u0439\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0435\u0439\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u00a0\u0443\u0441\u0442\u0430\u0440\u0435\u043b\u00a0\u0438\u00a0\u0431\u043e\u043b\u044c\u0448\u0435\u00a0\u043d\u0435\u00a0\u0434\u043e\u043b\u0436\u0435\u043d\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f\u00a0(\u044d\u0442\u043e\u00a0\u0441\u0442\u043e\u0438\u0442\u00a0\u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c\u00a0\u0432\u00a0Javadoc).\u00a0\u041f\u0440\u0438\u00a0\u043d\u0430\u043b\u0438\u0447\u0438\u0438\u00a0\u0442\u0430\u043a\u043e\u0433\u043e\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u00a0\u0432\u00a0\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435\u00a0\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u00a0\u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u00a0\u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435.<\/p>\n<pre><code class=\"java\">\/\/ \u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 Javadoc: \/**  * @deprecated  * \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435, \u043f\u043e\u0447\u0435\u043c\u0443 \u043c\u0435\u0442\u043e\u0434 \u0443\u0441\u0442\u0430\u0440\u0435\u043b. *\/  @Deprecated  static void deprecatedMethod() { }<\/code><\/pre>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/Override.html\" rel=\"noopener noreferrer nofollow\">@Override<\/a><\/p>\n<p>\u0418\u043d\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u00a0\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u00a0\u043e\u00a0\u0442\u043e\u043c,\u00a0\u0447\u0442\u043e\u00a0\u0430\u043d\u043d\u043e\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0439\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u00a0\u0434\u043e\u043b\u0436\u0435\u043d\u00a0\u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u00a0\u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e\u00a0\u043a\u043b\u0430\u0441\u0441\u0430.\u00a0\u041f\u0440\u0438\u00a0\u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u043c\u00a0\u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438\u00a0\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u00a0\u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u00a0\u043e\u0448\u0438\u0431\u043a\u0443.<\/p>\n<pre><code class=\"java\">@Override int overriddenMethod() { }<\/code><\/pre>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/SuppressWarnings.html\" rel=\"noopener noreferrer nofollow\">@SuppressWarnings<\/a><\/p>\n<p>\u041f\u043e\u0434\u0430\u0432\u043b\u044f\u0435\u0442\u00a0\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0435\u00a0\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c\u00a0\u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f.<\/p>\n<p>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f\u00a0\u0434\u0435\u043b\u044f\u0442\u0441\u044f\u00a0\u043d\u0430\u00a0\u043d\u0435\u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0435\u00a0(unchecked)\u00a0\u0438\u00a0\u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435\u00a0(deprecation).\u00a0\u041f\u0435\u0440\u0432\u044b\u0435\u00a0\u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442\u00a0\u043f\u0440\u0438\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438\u00a0\u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0433\u043e\u00a0\u043a\u043e\u0434\u0430,\u00a0\u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e\u00a0\u0434\u043e\u00a0\u0434\u0436\u0435\u043d\u0435\u0440\u0438\u043a\u043e\u0432,\u00a0\u0432\u0442\u043e\u0440\u044b\u0435\u00a0&#8212;\u00a0\u043f\u0440\u0438\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438\u00a0\u043a\u043e\u0434\u0430,\u00a0\u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u043e\u0433\u043e\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0435\u0439\u00a0@Deprecated.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e\u00a0\u043f\u043e\u0434\u0430\u0432\u0438\u0442\u044c\u00a0\u043a\u0430\u043a\u00a0\u043e\u0434\u043d\u0443\u00a0\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e,\u00a0\u0442\u0430\u043a\u00a0\u0438\u00a0\u043e\u0431\u0435\u00a0\u0441\u0440\u0430\u0437\u0443:<\/p>\n<pre><code class=\"java\">@SuppressWarnings({\"unchecked\", \"deprecation\"})<\/code><\/pre>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/SafeVarargs.html\" rel=\"noopener noreferrer nofollow\">@SafeVarargs<\/a><\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f\u00a0\u043a\u00a0\u043c\u0435\u0442\u043e\u0434\u0443\u00a0\u0438\u043b\u0438\u00a0\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0443\u00a0\u0438\u00a0\u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442,\u00a0\u0447\u0442\u043e\u00a0\u043a\u043e\u0434\u00a0\u043d\u0435\u00a0\u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u00a0\u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u00a0\u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0445\u00a0\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439\u00a0\u0441\u00a0\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438\u00a0varargs.\u00a0\u041f\u0440\u0438\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u043f\u043e\u0434\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f\u00a0unchecked\u00a0\u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f,\u00a0\u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435\u00a0\u0441\u00a0varargs.<\/p>\n<pre><code class=\"java\">@SafeVarargs \/\/ \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e! static void m(List&lt;String>... stringLists) {      Object[] array = stringLists;      List&lt;Integer> tmpList = Arrays.asList(42);     array[0] = tmpList; \/\/\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0435\u0432\u0435\u0440\u043d\u043e, \u043d\u043e \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0431\u0435\u0437 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f     String s = stringLists[0].get(0); \/\/ClassCastException  }<\/code><\/pre>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/FunctionalInterface.html\" rel=\"noopener noreferrer nofollow\">@FunctionalInterface<\/a><\/p>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f\u00a0\u043f\u0440\u0438\u00a0\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438\u00a0\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e\u00a0\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430.\u00a0\u041f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u0435\u0442,\u00a0\u0447\u0442\u043e\u00a0\u044d\u0442\u043e\u00a0\u0438\u043c\u0435\u043d\u043d\u043e\u00a0\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439\u00a0\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441.<\/p>\n<pre><code class=\"java\">@FunctionalInterface public interface Predicate&lt;T> {      boolean test(T t);  }<\/code><\/pre>\n<h4>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438, \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u044b\u0435 \u043a \u0434\u0440\u0443\u0433\u0438\u043c \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u043c (\u043c\u0435\u0442\u0430-\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438)<\/h4>\n<p>\u0420\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f\u00a0\u0432\u00a0\u043f\u0430\u043a\u0435\u0442\u0435\u00a0java.lang.annotation.<\/p>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/annotation\/Retention.html\" rel=\"noopener noreferrer nofollow\">@Retention<\/a><\/p>\n<p>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442,\u00a0\u0441\u043a\u043e\u043b\u044c\u043a\u043e\u00a0\u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f\u00a0\u043e\u0442\u043c\u0435\u0447\u0435\u043d\u043d\u0430\u044f\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f.<\/p>\n<ul>\n<li>\n<p><code>RetentionPolicy.SOURCE<\/code>. \u041e\u0442\u043c\u0435\u0447\u0435\u043d\u043d\u0430\u044f \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0438 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c.<\/p>\n<\/li>\n<li>\n<p><code>RetentionPolicy.CLASS<\/code>. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u043d\u043e \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f JVM.<\/p>\n<\/li>\n<li>\n<p><code>RetentionPolicy.RUNTIME<\/code>. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f JVM \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/annotation\/Documented.html\" rel=\"noopener noreferrer nofollow\">@Documented<\/a><\/p>\n<p>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442,\u00a0\u0447\u0442\u043e\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f,\u00a0\u0434\u043e\u043b\u0436\u043d\u0430\u00a0\u0431\u044b\u0442\u044c\u00a0\u0437\u0430\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0430\u00a0\u0432\u00a0Javadoc\u00a0(\u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u043d\u0435\u00a0\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f).<\/p>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/annotation\/Target.html\" rel=\"noopener noreferrer nofollow\">@Target<\/a><\/p>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u00a0\u043f\u0440\u0430\u0432\u0430\u00a0\u0434\u043e\u0441\u0442\u0443\u043f\u0430\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0(\u043a\u00a0\u043a\u0430\u043a\u0438\u043c\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u00a0\u0435\u0435\u00a0\u043c\u043e\u0436\u043d\u043e\u00a0\u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c).\u00a0\u0412\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0<code>@Target<\/code>\u00a0\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0\u043e\u0434\u043d\u043e\u00a0\u0438\u0437\u00a0\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445\u00a0\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439:<\/p>\n<ul>\n<li>\n<p><code>ElementType.ANNOTATION_TYPE<\/code>. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438<\/p>\n<\/li>\n<li>\n<p><code>ElementType.CONSTRUCTOR<\/code>. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0443.<\/p>\n<\/li>\n<li>\n<p><code>ElementType.FIELD<\/code>. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u043f\u043e\u043b\u044e \u0438\u043b\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0443.<\/p>\n<\/li>\n<li>\n<p><code>ElementType.LOCAL_VARIABLE<\/code>. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439.<\/p>\n<\/li>\n<li>\n<p><code>ElementType.METHOD<\/code>. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u043c\u0435\u0442\u043e\u0434\u0443.<\/p>\n<\/li>\n<li>\n<p><code>ElementType.PARAMETER<\/code>. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0443 \u043c\u0435\u0442\u043e\u0434\u0430.<\/p>\n<\/li>\n<li>\n<p><code>ElementType.TYPE<\/code>. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u043b\u044e\u0431\u043e\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/annotation\/Inherited.html\" rel=\"noopener noreferrer nofollow\">@Inherited<\/a><\/p>\n<p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u00a0\u0431\u0443\u0434\u0435\u0442\u00a0\u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f\u00a0\u0434\u043e\u0447\u0435\u0440\u043d\u0438\u043c\u00a0\u043a\u043b\u0430\u0441\u0441\u043e\u043c\u00a0(\u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u043d\u0435\u00a0\u043d\u0430\u0441\u043b\u0435\u0434\u0443\u044e\u0442\u0441\u044f).\u00a0\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u0430\u00a0\u0442\u043e\u043b\u044c\u043a\u043e\u00a0\u043a\u00a0\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c\u00a0\u043a\u043b\u0430\u0441\u0441\u043e\u0432.<\/p>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/annotation\/Repeatable.html\" rel=\"noopener noreferrer nofollow\">@Repeatable<\/a><\/p>\n<p>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442,\u00a0\u0447\u0442\u043e\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u00a0\u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0430\u044f\u0441\u044f.<\/p>\n<h3>\u041f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438<\/h3>\n<h4>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435<\/h4>\n<p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0435\u00a0\u043c\u043e\u0433\u0443\u0442\u00a0\u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f\u00a0\u043a\u00a0\u043e\u0434\u043d\u043e\u043c\u0443\u00a0\u0438\u00a0\u0442\u043e\u043c\u0443\u00a0\u0436\u0435\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443\u00a0\u0431\u043e\u043b\u0435\u0435\u00a0\u043e\u0434\u043d\u043e\u0433\u043e\u00a0\u0440\u0430\u0437\u0430.<\/p>\n<h4>\u041f\u0440\u0438\u043c\u0435\u0440<\/h4>\n<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c,\u00a0\u0432\u0430\u043c\u00a0\u043d\u0430\u0434\u043e\u00a0\u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e,\u00a0\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0449\u0443\u044e\u00a0\u043c\u0435\u0442\u043e\u0434\u00a0\u0432\u00a0\u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0435\u00a0\u0432\u0440\u0435\u043c\u044f\u00a0\u0438\u043b\u0438\u00a0\u043f\u043e\u00a0\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c\u0443\u00a0\u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044e.\u00a0\u0412\u00a0\u043f\u0440\u0438\u043c\u0435\u0440\u0435\u00a0\u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0430\u044f\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u00a0<code>@Schedule<\/code>\u00a0\u0431\u0443\u0434\u0435\u0442\u00a0\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u00a0\u043c\u0435\u0442\u043e\u0434\u00a0\u043a\u0430\u0436\u0434\u044b\u0439\u00a0\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439\u00a0\u0434\u0435\u043d\u044c\u00a0\u043c\u0435\u0441\u044f\u0446\u0430\u00a0\u0438\u00a0\u043a\u0430\u0436\u0434\u0443\u044e\u00a0\u043f\u044f\u0442\u043d\u0438\u0446\u0443\u00a0\u0432\u00a023:00.<\/p>\n<pre><code class=\"java\">@Schedule(dayOfMonth=\"last\") @Schedule(dayOfWeek=\"Fri\", hour=\"23\")  public void doPeriodicCleanup() { ... }<\/code><\/pre>\n<h4>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0435\u0439\u0441\u044f \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438<\/h4>\n<p>\u0414\u043b\u044f\u00a0\u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f\u00a0\u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439\u00a0\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438\u00a0\u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f\u00a0\u0432\u00a0\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0439\u00a0\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u00a0\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f\u00a0java\u00a0\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c.\u00a0\u0414\u043b\u044f\u00a0\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438\u00a0\u043d\u0443\u0436\u043d\u044b\u00a0\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435\u00a0\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f:<\/p>\n<ol>\n<li>\n<p><strong>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0435\u0439\u0441\u044f \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438<\/strong><\/p>\n<\/li>\n<\/ol>\n<p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u00a0\u0434\u043e\u043b\u0436\u043d\u0430\u00a0\u0431\u044b\u0442\u044c\u00a0\u043f\u043e\u043c\u0435\u0447\u0435\u043d\u0430\u00a0@Repeatable,\u00a0\u0432\u00a0\u0441\u043a\u043e\u0431\u043a\u0430\u0445\u00a0\u0443\u043a\u0430\u0437\u0430\u043d\u00a0\u0442\u0438\u043f\u00a0\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439.<\/p>\n<pre><code class=\"java\">import java.lang.annotation.Repeatable;  @Repeatable(Schedules.class)  public @interface Schedule {      String dayOfMonth() default \"first\";      String dayOfWeek() default \"Mon\";      int hour() default 12;  }<\/code><\/pre>\n<ul>\n<li>\n<p><strong>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439<\/strong><\/p>\n<\/li>\n<\/ul>\n<p>\u041a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u00a0\u0434\u043e\u043b\u0436\u0435\u043d\u00a0\u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u00a0\u043c\u0430\u0441\u0441\u0438\u0432\u00a0\u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439.<\/p>\n<pre><code class=\"java\">public @interface Schedules {      Schedule[] value();  } <\/code><\/pre>\n<h4>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439<\/h4>\n<p>Reflection API\u00a0\u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u00a0\u043c\u0435\u0442\u043e\u0434\u044b\u00a0\u0434\u043b\u044f\u00a0\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439.\u00a0\u041f\u0440\u0438\u00a0\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438\u00a0\u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439\u00a0\u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u00a0\u043c\u0435\u0442\u043e\u0434\u043e\u0432,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0435\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442\u00a0\u043e\u0434\u043d\u0443\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e\u00a0(\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440,\u00a0<code>AnnotatedElement.getAnnotation(Class&lt;T>)<\/code>)\u00a0\u043d\u0435\u00a0\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f.\u00a0\u0415\u0441\u043b\u0438\u00a0\u043d\u0443\u0436\u043d\u043e\u00a0\u0432\u0435\u0440\u043d\u0443\u0442\u044c\u00a0\u0431\u043e\u043b\u0435\u0435\u00a0\u043e\u0434\u043d\u043e\u0439,\u00a0\u0442\u043e\u00a0\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u00a0\u0441\u043d\u0430\u0447\u0430\u043b\u0430\u00a0\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u00a0\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440.\u00a0\u0422\u0430\u043a\u0438\u043c\u00a0\u043e\u0431\u0440\u0430\u0437\u043e\u043c\u00a0\u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0439\u00a0\u043a\u043e\u0434\u00a0\u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u00a0\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.\u00a0\u0422\u0430\u043a\u0436\u0435,\u00a0\u0434\u043b\u044f\u00a0\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f\u00a0\u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439\u00a0\u043c\u043e\u0436\u043d\u043e\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u00a0\u043c\u0435\u0442\u043e\u0434\u044b\u00a0Java SE 8\u00a0(&#8216;AnnotatedElement.getAnnotationsByType(Class)&#8217;).<\/p>\n<p>\u0414\u043b\u044f\u00a0\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f\u00a0\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438\u00a0\u043e\u00a0\u0432\u0441\u0435\u0445\u00a0\u043c\u0435\u0442\u043e\u0434\u0430\u0445,\u00a0\u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c\u00a0\u043a\u00a0\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438\u00a0\u043a\u043b\u0430\u0441\u0441\u0430\u00a0<a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/reflect\/AnnotatedElement.html\" rel=\"noopener noreferrer nofollow\">AnnotatedElement<\/a>.<\/p>\n<h3>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0442\u0438\u043f\u043e\u0432<\/h3>\n<h4>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435<\/h4>\n<p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u0442\u0438\u043f\u043e\u0432\u00a0&#8212;\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0435\u00a0\u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f\u00a0\u0432\u043c\u0435\u0441\u0442\u0435\u00a0\u0441\u00a0\u0442\u0438\u043f\u0430\u043c\u0438.\u00a0\u0412\u0435\u0437\u0434\u0435,\u00a0\u0433\u0434\u0435\u00a0\u0432\u044b\u00a0\u0432\u0438\u0434\u0438\u0442\u0435\u00a0\u0442\u0438\u043f,\u00a0\u043c\u043e\u0436\u043d\u043e\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u00a0\u044d\u0442\u0443\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e.\u00a0\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440,\u00a0\u0441\u00a0\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c\u00a0new,\u00a0\u043f\u0440\u0438\u00a0\u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0438,\u00a0\u043f\u0440\u0438\u00a0\u0438\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438\u00a0\u0438\u00a0\u043f\u0440\u0438\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438\u00a0throws.<\/p>\n<h4>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0442\u0438\u043f\u043e\u0432<\/h4>\n<p>\u0414\u043b\u044f\u00a0\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u0442\u0438\u043f\u043e\u0432\u00a0\u0432\u00a0<code>@Target<\/code>\u00a0\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f\u00a0\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435\u00a0\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f,\u00a0\u043b\u0438\u0431\u043e\u00a0\u043e\u0434\u043d\u043e\u00a0\u0438\u0437\u00a0\u043d\u0438\u0445:<\/p>\n<pre><code class=\"java\">@Target ({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) public @interface Test {  }<\/code><\/pre>\n<p><code>TYPE_PARAMETER<\/code>,\u00a0\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442,\u00a0\u0447\u0442\u043e\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e\u00a0\u043c\u043e\u0436\u043d\u043e\u00a0\u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u00a0\u043a\u00a0\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u00a0\u0442\u0438\u043f\u0430\u00a0(\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440,\u00a0<code>MyClass&lt;T><\/code>).\u00a0<code>TYPE_USE<\/code>,\u00a0\u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442\u00a0\u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u00a0\u0441\u00a0\u043b\u044e\u0431\u044b\u043c\u0438\u00a0\u0442\u0438\u043f\u0430\u043c\u0438.<\/p>\n<h4>\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435<\/h4>\n<p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u0442\u0438\u043f\u043e\u0432\u00a0\u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u044b\u00a0\u0434\u043b\u044f\u00a0\u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u043e\u0433\u043e\u00a0\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u00a0\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u00a0\u0438\u00a0\u0431\u043e\u043b\u0435\u0435\u00a0\u0441\u0442\u0440\u043e\u0433\u043e\u0439\u00a0\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438\u00a0\u0442\u0438\u043f\u043e\u0432.\u00a0\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440,\u00a0<code>@NonNull String str;<\/code>.\u00a0Java SE8\u00a0\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u0442\u0438\u043f\u043e\u0432,\u00a0\u043d\u043e\u00a0\u043d\u0435\u00a0\u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442.\u00a0\u0412\u043c\u0435\u0441\u0442\u043e\u00a0\u044d\u0442\u043e\u0433\u043e\u00a0\u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u00a0\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435\u00a0\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438,\u00a0\u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0435\u00a0\u0438\u0445\u00a0(<a href=\"http:\/\/types.cs.washington.edu\/checker-framework\/\" rel=\"noopener noreferrer nofollow\">Checker Framework<\/a>).<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/662023\/\"> https:\/\/habr.com\/ru\/post\/662023\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h3>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u044f<\/h3>\n<ul>\n<li>\n<p>\u0421\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u0443\u0440\u0441\u0430 \u043e\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Oracle\u00a0<a href=\"https:\/\/docs.oracle.com\/javase\/tutorial\/java\/index.html\" rel=\"noopener noreferrer nofollow\">&#171;Learning the Java language&#187;<\/a>, \u0440\u0430\u0437\u0434\u0435\u043b\u0430 &#171;Annotations&#187;.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 \u0442\u0435\u043c, \u043a\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u043b\u0441\u044f \u0441 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u043c\u0438 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u0438 \u0445\u043e\u0447\u0435\u0442 \u0443\u0433\u043b\u0443\u0431\u0438\u0442\u044c \u0438\u043b\u0438 \u043e\u0441\u0432\u0435\u0436\u0438\u0442\u044c \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0437\u043d\u0430\u043d\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<h3>\u041e\u0441\u043d\u043e\u0432\u044b \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439<\/h3>\n<h4>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435<\/h4>\n<p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0&#8212;\u00a0\u044d\u0442\u043e\u00a0\u0444\u043e\u0440\u043c\u0430\u00a0\u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445.\u00a0\u041e\u043d\u0438\u00a0\u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u00a0\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e\u00a0\u043e\u00a0\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435,\u00a0\u043f\u0440\u0438\u00a0\u0442\u043e\u043c\u00a0\u0441\u0430\u043c\u0438\u00a0\u0447\u0430\u0441\u0442\u044c\u044e\u00a0\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b\u00a0\u043d\u0435\u00a0\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f.<\/p>\n<h4>\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435<\/h4>\n<ul>\n<li>\n<p><strong>\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430.<\/strong>\u00a0\u041c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c \u0434\u043b\u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u043f\u043e\u0434\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f.<\/strong>\u00a0\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u043e\u0434, XML-\u0444\u0430\u0439\u043b\u044b \u0438 \u0442.\u043f. \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p><strong>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/strong>\u00a0\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441<\/h4>\n<p>\u041d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f\u00a0\u0441\u00a0<code>@<\/code>,\u00a0\u043c\u043e\u0433\u0443\u0442\u00a0\u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u00a0\u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u044e\u0442\u0441\u044f\u00a0\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:<\/p>\n<pre><code class=\"java\">@Author(     name = \"Benjamin Franklin\"     date = \"3\/27\/2003\" ) class MyClass{...}<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438\u00a0\u0442\u0430\u043a\u043e\u0439\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u00a0\u043e\u0434\u0438\u043d,\u00a0\u0435\u0433\u043e\u00a0\u0438\u043c\u044f\u00a0\u043c\u043e\u0436\u043d\u043e\u00a0\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c:<\/p>\n<pre><code class=\"java\">@SupressWarnings(\"unchecked\") void MyMethod() {...}<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438\u00a0\u0442\u0430\u043a\u0438\u0445\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432\u00a0\u043d\u0435\u0442,\u00a0\u043c\u043e\u0436\u043d\u043e\u00a0\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u00a0\u0441\u043a\u043e\u0431\u043a\u0438.\u00a0\u041c\u043e\u0436\u043d\u043e\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u00a0\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439\u00a0\u0432\u00a0\u043e\u0434\u043d\u043e\u043c\u00a0\u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0438:<\/p>\n<pre><code class=\"java\">@Author(name = \"Jane Doe\") @EBook  class MyClass { ... }<\/code><\/pre>\n<p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u043c\u043e\u0433\u0443\u0442\u00a0\u0431\u044b\u0442\u044c\u00a0\u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u043c\u0438\u0441\u044f.<\/p>\n<pre><code class=\"java\">@Author(name = \"Jane Doe\") @Author(name = \"John Smith\") class MyClass { ... }<\/code><\/pre>\n<h4>\u0413\u0434\u0435 \u0432 \u043a\u043e\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438<\/h4>\n<p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f\u00a0\u0441\u00a0\u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438\u00a0\u043a\u043b\u0430\u0441\u0441\u043e\u0432,\u00a0\u043f\u043e\u043b\u0435\u0439\u00a0\u0438\u00a0\u0434\u0440\u0443\u0433\u0438\u0445\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432\u00a0\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/p>\n<p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438,\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435\u0441\u044f\u00a0\u0441\u00a0\u0442\u0438\u043f\u0430\u043c\u0438,\u00a0\u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u043c\u0438\u00a0\u0442\u0438\u043f\u043e\u0432.\u00a0\u041f\u0440\u0438\u043c\u0435\u0440\u044b\u00a0\u0442\u0430\u043a\u0438\u0445\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439:<\/p>\n<ul>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043a\u043b\u0430\u0441\u0441\u0430:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"java\">new @Interned MyObject(); <\/code><\/pre>\n<ul>\n<li>\n<p>\u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043a \u0442\u0438\u043f\u0443:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"java\">myString = (@NonNull String) str;<\/code><\/pre>\n<ul>\n<li>\n<p>\u0418\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"java\">class UnmodifiableList&lt;T>     implements @Readonly List&lt;@Readonly T> { ... }<\/code><\/pre>\n<ul>\n<li>\n<p>\u041e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0431\u0440\u043e\u0441\u0430\u0435\u043c\u044b\u0445 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"java\">void monitorTemperature() throws     @Critical TemperatureException { ... }<\/code><\/pre>\n<h3>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438<\/h3>\n<h4>\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441<\/h4>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442\u00a0\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u00a0\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430.\u00a0\u041e\u043d\u043e\u00a0\u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f\u00a0\u0441\u00a0<code>@Interface<\/code>,\u00a0\u0430\u00a0\u0435\u0433\u043e\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b\u00a0\u043f\u043e\u0445\u043e\u0436\u0438\u00a0\u043d\u0430\u00a0\u043c\u0435\u0442\u043e\u0434\u044b,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0435\u00a0\u043c\u043e\u0433\u0443\u0442\u00a0\u0438\u043c\u0435\u0442\u044c\u00a0\u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0435\u00a0\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<h4>\u041f\u0440\u0438\u043c\u0435\u0440<\/h4>\n<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c,\u00a0\u0432\u00a0\u043a\u0430\u043a\u043e\u0439-\u0442\u043e\u00a0IT-\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438\u00a0\u0442\u0435\u043b\u0430\u00a0\u0432\u0441\u0435\u0445\u00a0\u043a\u043b\u0430\u0441\u0441\u043e\u0432\u00a0\u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f\u00a0\u0441\u00a0\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432,\u00a0\u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445\u00a0\u0432\u0430\u0436\u043d\u0443\u044e\u00a0\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e:<\/p>\n<pre><code class=\"java\">public class Generation3List extends Generation2List {       \/\/ Author: John Doe      \/\/ Date: 3\/17\/2002     \/\/ Current revision: 6      \/\/ Last modified: 4\/12\/2004      \/\/ By: Jane Doe      \/\/ Reviewers: Alice, Bill, Cindy      \/\/ class code goes here  }<\/code><\/pre>\n<p>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438,\u00a0\u043a\u043e\u0442\u043e\u0440\u0430\u044f\u00a0\u0437\u0430\u043c\u0435\u043d\u0438\u0442\u00a0\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438:<\/p>\n<pre><code class=\"java\">@interface ClassPreamble {     String author();     String date();      int currentRevision() default 1;      String lastModified() default \"N\/A\";     String lastModifiedBy() default \"N\/A\";      \/\/ \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0430\u0441\u0441\u0438\u0432     String[] reviewers();   }<\/code><\/pre>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u00a0\u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438:<\/p>\n<pre><code class=\"java\">@ClassPreamble (      author = \"John Doe\",      date = \"3\/17\/2002\",      currentRevision = 6,      lastModified = \"4\/12\/2004\",      lastModifiedBy = \"Jane Doe\",      reviewers = {\"Alice\", \"Bob\", \"Cindy\"}  )  public class Generation3List extends Generation2List { ... ... } <\/code><\/pre>\n<p><strong>\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435:<\/strong>\u00a0\u0434\u043b\u044f\u00a0\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u0432\u00a0Javadocs\u00a0\u043d\u0443\u0436\u043d\u043e\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u00a0@Documented:<\/p>\n<pre><code class=\"java\">import java.lang.annotation.*;   @Documented  @interface ClassPreamble {      \/\/ \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438  }<\/code><\/pre>\n<h3>\u041f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438<\/h3>\n<p>\u0412\u00a0Java\u00a0\u0435\u0441\u0442\u044c\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438,\u00a0\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435\u00a0\u0437\u0430\u0440\u0430\u043d\u0435\u0435.\u00a0\u0427\u0430\u0441\u0442\u044c\u00a0\u0438\u0437\u00a0\u043d\u0438\u0445\u00a0\u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u00a0\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e\u00a0\u0434\u043b\u044f\u00a0\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430,\u00a0\u0447\u0430\u0441\u0442\u044c\u00a0\u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f\u00a0\u043a\u00a0\u0434\u0440\u0443\u0433\u0438\u043c\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u043c.<\/p>\n<h4>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435\u0441\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c<\/h4>\n<p>\u0420\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f\u00a0\u0432\u00a0\u043f\u0430\u043a\u0435\u0442\u0435\u00a0java.lang.<\/p>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/Deprecated.html\" rel=\"noopener noreferrer nofollow\">@Deprecated<\/a><\/p>\n<p>\u041f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0439\u00a0\u044d\u0442\u043e\u0439\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0435\u0439\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u00a0\u0443\u0441\u0442\u0430\u0440\u0435\u043b\u00a0\u0438\u00a0\u0431\u043e\u043b\u044c\u0448\u0435\u00a0\u043d\u0435\u00a0\u0434\u043e\u043b\u0436\u0435\u043d\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f\u00a0(\u044d\u0442\u043e\u00a0\u0441\u0442\u043e\u0438\u0442\u00a0\u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c\u00a0\u0432\u00a0Javadoc).\u00a0\u041f\u0440\u0438\u00a0\u043d\u0430\u043b\u0438\u0447\u0438\u0438\u00a0\u0442\u0430\u043a\u043e\u0433\u043e\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u00a0\u0432\u00a0\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435\u00a0\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u00a0\u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u00a0\u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435.<\/p>\n<pre><code class=\"java\">\/\/ \u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 Javadoc: \/**  * @deprecated  * \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435, \u043f\u043e\u0447\u0435\u043c\u0443 \u043c\u0435\u0442\u043e\u0434 \u0443\u0441\u0442\u0430\u0440\u0435\u043b. *\/  @Deprecated  static void deprecatedMethod() { }<\/code><\/pre>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/Override.html\" rel=\"noopener noreferrer nofollow\">@Override<\/a><\/p>\n<p>\u0418\u043d\u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u00a0\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u00a0\u043e\u00a0\u0442\u043e\u043c,\u00a0\u0447\u0442\u043e\u00a0\u0430\u043d\u043d\u043e\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0439\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u00a0\u0434\u043e\u043b\u0436\u0435\u043d\u00a0\u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u00a0\u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e\u00a0\u043a\u043b\u0430\u0441\u0441\u0430.\u00a0\u041f\u0440\u0438\u00a0\u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u043c\u00a0\u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438\u00a0\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u00a0\u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u00a0\u043e\u0448\u0438\u0431\u043a\u0443.<\/p>\n<pre><code class=\"java\">@Override int overriddenMethod() { }<\/code><\/pre>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/SuppressWarnings.html\" rel=\"noopener noreferrer nofollow\">@SuppressWarnings<\/a><\/p>\n<p>\u041f\u043e\u0434\u0430\u0432\u043b\u044f\u0435\u0442\u00a0\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0435\u00a0\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c\u00a0\u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f.<\/p>\n<p>\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f\u00a0\u0434\u0435\u043b\u044f\u0442\u0441\u044f\u00a0\u043d\u0430\u00a0\u043d\u0435\u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0435\u00a0(unchecked)\u00a0\u0438\u00a0\u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435\u00a0(deprecation).\u00a0\u041f\u0435\u0440\u0432\u044b\u0435\u00a0\u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442\u00a0\u043f\u0440\u0438\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438\u00a0\u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0433\u043e\u00a0\u043a\u043e\u0434\u0430,\u00a0\u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e\u00a0\u0434\u043e\u00a0\u0434\u0436\u0435\u043d\u0435\u0440\u0438\u043a\u043e\u0432,\u00a0\u0432\u0442\u043e\u0440\u044b\u0435\u00a0&#8212;\u00a0\u043f\u0440\u0438\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438\u00a0\u043a\u043e\u0434\u0430,\u00a0\u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u043e\u0433\u043e\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0435\u0439\u00a0@Deprecated.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e\u00a0\u043f\u043e\u0434\u0430\u0432\u0438\u0442\u044c\u00a0\u043a\u0430\u043a\u00a0\u043e\u0434\u043d\u0443\u00a0\u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e,\u00a0\u0442\u0430\u043a\u00a0\u0438\u00a0\u043e\u0431\u0435\u00a0\u0441\u0440\u0430\u0437\u0443:<\/p>\n<pre><code class=\"java\">@SuppressWarnings({\"unchecked\", \"deprecation\"})<\/code><\/pre>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/SafeVarargs.html\" rel=\"noopener noreferrer nofollow\">@SafeVarargs<\/a><\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f\u00a0\u043a\u00a0\u043c\u0435\u0442\u043e\u0434\u0443\u00a0\u0438\u043b\u0438\u00a0\u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0443\u00a0\u0438\u00a0\u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442,\u00a0\u0447\u0442\u043e\u00a0\u043a\u043e\u0434\u00a0\u043d\u0435\u00a0\u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u00a0\u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u00a0\u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0445\u00a0\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439\u00a0\u0441\u00a0\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438\u00a0varargs.\u00a0\u041f\u0440\u0438\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u043f\u043e\u0434\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f\u00a0unchecked\u00a0\u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f,\u00a0\u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435\u00a0\u0441\u00a0varargs.<\/p>\n<pre><code class=\"java\">@SafeVarargs \/\/ \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e! static void m(List&lt;String>... stringLists) {      Object[] array = stringLists;      List&lt;Integer> tmpList = Arrays.asList(42);     array[0] = tmpList; \/\/\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0435\u0432\u0435\u0440\u043d\u043e, \u043d\u043e \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0431\u0435\u0437 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f     String s = stringLists[0].get(0); \/\/ClassCastException  }<\/code><\/pre>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/FunctionalInterface.html\" rel=\"noopener noreferrer nofollow\">@FunctionalInterface<\/a><\/p>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f\u00a0\u043f\u0440\u0438\u00a0\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438\u00a0\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e\u00a0\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430.\u00a0\u041f\u043e\u0434\u0447\u0435\u0440\u043a\u0438\u0432\u0430\u0435\u0442,\u00a0\u0447\u0442\u043e\u00a0\u044d\u0442\u043e\u00a0\u0438\u043c\u0435\u043d\u043d\u043e\u00a0\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439\u00a0\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441.<\/p>\n<pre><code class=\"java\">@FunctionalInterface public interface Predicate&lt;T> {      boolean test(T t);  }<\/code><\/pre>\n<h4>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438, \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u044b\u0435 \u043a \u0434\u0440\u0443\u0433\u0438\u043c \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u043c (\u043c\u0435\u0442\u0430-\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438)<\/h4>\n<p>\u0420\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f\u00a0\u0432\u00a0\u043f\u0430\u043a\u0435\u0442\u0435\u00a0java.lang.annotation.<\/p>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/annotation\/Retention.html\" rel=\"noopener noreferrer nofollow\">@Retention<\/a><\/p>\n<p>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442,\u00a0\u0441\u043a\u043e\u043b\u044c\u043a\u043e\u00a0\u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f\u00a0\u043e\u0442\u043c\u0435\u0447\u0435\u043d\u043d\u0430\u044f\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f.<\/p>\n<ul>\n<li>\n<p><code>RetentionPolicy.SOURCE<\/code>. \u041e\u0442\u043c\u0435\u0447\u0435\u043d\u043d\u0430\u044f \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0438 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c.<\/p>\n<\/li>\n<li>\n<p><code>RetentionPolicy.CLASS<\/code>. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438, \u043d\u043e \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f JVM.<\/p>\n<\/li>\n<li>\n<p><code>RetentionPolicy.RUNTIME<\/code>. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f JVM \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b.<\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/annotation\/Documented.html\" rel=\"noopener noreferrer nofollow\">@Documented<\/a><\/p>\n<p>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442,\u00a0\u0447\u0442\u043e\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f,\u00a0\u0434\u043e\u043b\u0436\u043d\u0430\u00a0\u0431\u044b\u0442\u044c\u00a0\u0437\u0430\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0430\u00a0\u0432\u00a0Javadoc\u00a0(\u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u043d\u0435\u00a0\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f).<\/p>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/annotation\/Target.html\" rel=\"noopener noreferrer nofollow\">@Target<\/a><\/p>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u00a0\u043f\u0440\u0430\u0432\u0430\u00a0\u0434\u043e\u0441\u0442\u0443\u043f\u0430\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0(\u043a\u00a0\u043a\u0430\u043a\u0438\u043c\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u00a0\u0435\u0435\u00a0\u043c\u043e\u0436\u043d\u043e\u00a0\u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c).\u00a0\u0412\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0<code>@Target<\/code>\u00a0\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0\u043e\u0434\u043d\u043e\u00a0\u0438\u0437\u00a0\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445\u00a0\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439:<\/p>\n<ul>\n<li>\n<p><code>ElementType.ANNOTATION_TYPE<\/code>. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438<\/p>\n<\/li>\n<li>\n<p><code>ElementType.CONSTRUCTOR<\/code>. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0443.<\/p>\n<\/li>\n<li>\n<p><code>ElementType.FIELD<\/code>. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u043f\u043e\u043b\u044e \u0438\u043b\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0443.<\/p>\n<\/li>\n<li>\n<p><code>ElementType.LOCAL_VARIABLE<\/code>. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439.<\/p>\n<\/li>\n<li>\n<p><code>ElementType.METHOD<\/code>. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u043c\u0435\u0442\u043e\u0434\u0443.<\/p>\n<\/li>\n<li>\n<p><code>ElementType.PARAMETER<\/code>. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0443 \u043c\u0435\u0442\u043e\u0434\u0430.<\/p>\n<\/li>\n<li>\n<p><code>ElementType.TYPE<\/code>. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043a \u043b\u044e\u0431\u043e\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/annotation\/Inherited.html\" rel=\"noopener noreferrer nofollow\">@Inherited<\/a><\/p>\n<p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u00a0\u0431\u0443\u0434\u0435\u0442\u00a0\u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f\u00a0\u0434\u043e\u0447\u0435\u0440\u043d\u0438\u043c\u00a0\u043a\u043b\u0430\u0441\u0441\u043e\u043c\u00a0(\u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u043d\u0435\u00a0\u043d\u0430\u0441\u043b\u0435\u0434\u0443\u044e\u0442\u0441\u044f).\u00a0\u041f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u0430\u00a0\u0442\u043e\u043b\u044c\u043a\u043e\u00a0\u043a\u00a0\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c\u00a0\u043a\u043b\u0430\u0441\u0441\u043e\u0432.<\/p>\n<p><a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/annotation\/Repeatable.html\" rel=\"noopener noreferrer nofollow\">@Repeatable<\/a><\/p>\n<p>\u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442,\u00a0\u0447\u0442\u043e\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u00a0\u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0430\u044f\u0441\u044f.<\/p>\n<h3>\u041f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438<\/h3>\n<h4>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435<\/h4>\n<p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0435\u00a0\u043c\u043e\u0433\u0443\u0442\u00a0\u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f\u00a0\u043a\u00a0\u043e\u0434\u043d\u043e\u043c\u0443\u00a0\u0438\u00a0\u0442\u043e\u043c\u0443\u00a0\u0436\u0435\u00a0\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443\u00a0\u0431\u043e\u043b\u0435\u0435\u00a0\u043e\u0434\u043d\u043e\u0433\u043e\u00a0\u0440\u0430\u0437\u0430.<\/p>\n<h4>\u041f\u0440\u0438\u043c\u0435\u0440<\/h4>\n<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c,\u00a0\u0432\u0430\u043c\u00a0\u043d\u0430\u0434\u043e\u00a0\u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e,\u00a0\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0449\u0443\u044e\u00a0\u043c\u0435\u0442\u043e\u0434\u00a0\u0432\u00a0\u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0435\u00a0\u0432\u0440\u0435\u043c\u044f\u00a0\u0438\u043b\u0438\u00a0\u043f\u043e\u00a0\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c\u0443\u00a0\u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044e.\u00a0\u0412\u00a0\u043f\u0440\u0438\u043c\u0435\u0440\u0435\u00a0\u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0430\u044f\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u00a0<code>@Schedule<\/code>\u00a0\u0431\u0443\u0434\u0435\u0442\u00a0\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u00a0\u043c\u0435\u0442\u043e\u0434\u00a0\u043a\u0430\u0436\u0434\u044b\u0439\u00a0\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439\u00a0\u0434\u0435\u043d\u044c\u00a0\u043c\u0435\u0441\u044f\u0446\u0430\u00a0\u0438\u00a0\u043a\u0430\u0436\u0434\u0443\u044e\u00a0\u043f\u044f\u0442\u043d\u0438\u0446\u0443\u00a0\u0432\u00a023:00.<\/p>\n<pre><code class=\"java\">@Schedule(dayOfMonth=\"last\") @Schedule(dayOfWeek=\"Fri\", hour=\"23\")  public void doPeriodicCleanup() { ... }<\/code><\/pre>\n<h4>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0435\u0439\u0441\u044f \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438<\/h4>\n<p>\u0414\u043b\u044f\u00a0\u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f\u00a0\u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439\u00a0\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u0438\u00a0\u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0435\u0441\u044f\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f\u00a0\u0432\u00a0\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0439\u00a0\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u00a0\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f\u00a0java\u00a0\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c.\u00a0\u0414\u043b\u044f\u00a0\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438\u00a0\u043d\u0443\u0436\u043d\u044b\u00a0\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435\u00a0\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f:<\/p>\n<ol>\n<li>\n<p><strong>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0435\u0439\u0441\u044f \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438<\/strong><\/p>\n<\/li>\n<\/ol>\n<p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u00a0\u0434\u043e\u043b\u0436\u043d\u0430\u00a0\u0431\u044b\u0442\u044c\u00a0\u043f\u043e\u043c\u0435\u0447\u0435\u043d\u0430\u00a0@Repeatable,\u00a0\u0432\u00a0\u0441\u043a\u043e\u0431\u043a\u0430\u0445\u00a0\u0443\u043a\u0430\u0437\u0430\u043d\u00a0\u0442\u0438\u043f\u00a0\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439.<\/p>\n<pre><code class=\"java\">import java.lang.annotation.Repeatable;  @Repeatable(Schedules.class)  public @interface Schedule {      String dayOfMonth() default \"first\";      String dayOfWeek() default \"Mon\";      int hour() default 12;  }<\/code><\/pre>\n<ul>\n<li>\n<p><strong>\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439<\/strong><\/p>\n<\/li>\n<\/ul>\n<p>\u041a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u00a0\u0434\u043e\u043b\u0436\u0435\u043d\u00a0\u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c\u00a0\u043c\u0430\u0441\u0441\u0438\u0432\u00a0\u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439.<\/p>\n<pre><code class=\"java\">public @interface Schedules {      Schedule[] value();  } <\/code><\/pre>\n<h4>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439<\/h4>\n<p>Reflection API\u00a0\u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u00a0\u043c\u0435\u0442\u043e\u0434\u044b\u00a0\u0434\u043b\u044f\u00a0\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439.\u00a0\u041f\u0440\u0438\u00a0\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438\u00a0\u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439\u00a0\u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u00a0\u043c\u0435\u0442\u043e\u0434\u043e\u0432,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0435\u00a0\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442\u00a0\u043e\u0434\u043d\u0443\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e\u00a0(\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440,\u00a0<code>AnnotatedElement.getAnnotation(Class&lt;T>)<\/code>)\u00a0\u043d\u0435\u00a0\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f.\u00a0\u0415\u0441\u043b\u0438\u00a0\u043d\u0443\u0436\u043d\u043e\u00a0\u0432\u0435\u0440\u043d\u0443\u0442\u044c\u00a0\u0431\u043e\u043b\u0435\u0435\u00a0\u043e\u0434\u043d\u043e\u0439,\u00a0\u0442\u043e\u00a0\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u00a0\u0441\u043d\u0430\u0447\u0430\u043b\u0430\u00a0\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c\u00a0\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440.\u00a0\u0422\u0430\u043a\u0438\u043c\u00a0\u043e\u0431\u0440\u0430\u0437\u043e\u043c\u00a0\u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0439\u00a0\u043a\u043e\u0434\u00a0\u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u00a0\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.\u00a0\u0422\u0430\u043a\u0436\u0435,\u00a0\u0434\u043b\u044f\u00a0\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f\u00a0\u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439\u00a0\u043c\u043e\u0436\u043d\u043e\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u00a0\u043c\u0435\u0442\u043e\u0434\u044b\u00a0Java SE 8\u00a0(&#8216;AnnotatedElement.getAnnotationsByType(Class)&#8217;).<\/p>\n<p>\u0414\u043b\u044f\u00a0\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f\u00a0\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438\u00a0\u043e\u00a0\u0432\u0441\u0435\u0445\u00a0\u043c\u0435\u0442\u043e\u0434\u0430\u0445,\u00a0\u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c\u00a0\u043a\u00a0\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438\u00a0\u043a\u043b\u0430\u0441\u0441\u0430\u00a0<a href=\"https:\/\/docs.oracle.com\/javase\/8\/docs\/api\/java\/lang\/reflect\/AnnotatedElement.html\" rel=\"noopener noreferrer nofollow\">AnnotatedElement<\/a>.<\/p>\n<h3>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0442\u0438\u043f\u043e\u0432<\/h3>\n<h4>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435<\/h4>\n<p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u0442\u0438\u043f\u043e\u0432\u00a0&#8212;\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0435\u00a0\u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f\u00a0\u0432\u043c\u0435\u0441\u0442\u0435\u00a0\u0441\u00a0\u0442\u0438\u043f\u0430\u043c\u0438.\u00a0\u0412\u0435\u0437\u0434\u0435,\u00a0\u0433\u0434\u0435\u00a0\u0432\u044b\u00a0\u0432\u0438\u0434\u0438\u0442\u0435\u00a0\u0442\u0438\u043f,\u00a0\u043c\u043e\u0436\u043d\u043e\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u00a0\u044d\u0442\u0443\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e.\u00a0\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440,\u00a0\u0441\u00a0\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c\u00a0new,\u00a0\u043f\u0440\u0438\u00a0\u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0438,\u00a0\u043f\u0440\u0438\u00a0\u0438\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438\u00a0\u0438\u00a0\u043f\u0440\u0438\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438\u00a0throws.<\/p>\n<h4>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u0442\u0438\u043f\u043e\u0432<\/h4>\n<p>\u0414\u043b\u044f\u00a0\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u0442\u0438\u043f\u043e\u0432\u00a0\u0432\u00a0<code>@Target<\/code>\u00a0\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f\u00a0\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435\u00a0\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f,\u00a0\u043b\u0438\u0431\u043e\u00a0\u043e\u0434\u043d\u043e\u00a0\u0438\u0437\u00a0\u043d\u0438\u0445:<\/p>\n<pre><code class=\"java\">@Target ({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER}) public @interface Test {  }<\/code><\/pre>\n<p><code>TYPE_PARAMETER<\/code>,\u00a0\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442,\u00a0\u0447\u0442\u043e\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e\u00a0\u043c\u043e\u0436\u043d\u043e\u00a0\u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u00a0\u043a\u00a0\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u00a0\u0442\u0438\u043f\u0430\u00a0(\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440,\u00a0<code>MyClass&lt;T><\/code>).\u00a0<code>TYPE_USE<\/code>,\u00a0\u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442\u00a0\u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u00a0\u0441\u00a0\u043b\u044e\u0431\u044b\u043c\u0438\u00a0\u0442\u0438\u043f\u0430\u043c\u0438.<\/p>\n<h4>\u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435<\/h4>\n<p>\u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u0442\u0438\u043f\u043e\u0432\u00a0\u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u044b\u00a0\u0434\u043b\u044f\u00a0\u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u043e\u0433\u043e\u00a0\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u00a0\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u00a0\u0438\u00a0\u0431\u043e\u043b\u0435\u0435\u00a0\u0441\u0442\u0440\u043e\u0433\u043e\u0439\u00a0\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438\u00a0\u0442\u0438\u043f\u043e\u0432.\u00a0\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440,\u00a0<code>@NonNull String str;<\/code>.\u00a0Java SE8\u00a0\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438\u00a0\u0442\u0438\u043f\u043e\u0432,\u00a0\u043d\u043e\u00a0\u043d\u0435\u00a0\u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442.\u00a0\u0412\u043c\u0435\u0441\u0442\u043e\u00a0\u044d\u0442\u043e\u0433\u043e\u00a0\u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u00a0\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435\u00a0\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438,\u00a0\u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0435\u00a0\u0438\u0445\u00a0(<a href=\"http:\/\/types.cs.washington.edu\/checker-framework\/\" rel=\"noopener noreferrer nofollow\">Checker Framework<\/a>).<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/662023\/\"> https:\/\/habr.com\/ru\/post\/662023\/<\/a><br \/><\/br><\/br><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-332179","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/332179","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=332179"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/332179\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=332179"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=332179"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=332179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}