{"id":1203,"date":"2020-07-10T19:00:00","date_gmt":"2020-07-10T10:00:00","guid":{"rendered":"https:\/\/ito-u-oti.com\/?p=1203"},"modified":"2020-07-10T17:00:14","modified_gmt":"2020-07-10T08:00:14","slug":"post-1203","status":"publish","type":"post","link":"https:\/\/ito-u-oti.com\/?p=1203","title":{"rendered":"\u3010Java\u3011\u7279\u5b9a\u306e\u6587\u5b57\u3060\u3051\u3092\u5f3e\u304fCustom Validation\u3092\u4f5c\u308b"},"content":{"rendered":"\n<p>\u6587\u5b57\u3092Unicode\u306b\u5909\u63db\u3057\u3066Enum\u306b\u6301\u305f\u305b\u3066\u3044\u308b\u5bfe\u8c61\u6587\u5b57\u306eUnicode\u3068\u6bd4\u3079\u3001\u4e00\u81f4\u3057\u3066\u3044\u305f\u3089Validation\u30a8\u30e9\u30fc\u306b\u3059\u308b\u3068\u3044\u3046\u81ea\u4f5cValid\u7528Annotation\u3092\u4f5c\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u4f8b\u3067\u306f\u3001\u300c<strong>\u9ad9<\/strong>\u300d\uff08\u306f\u3057\u3054\u9ad8\uff09\u304c\u6587\u5b57\u5217\u306b\u542b\u307e\u308c\u3066\u3044\u305f\u5834\u5408\u306b\u3001Validation\u30a8\u30e9\u30fc\u3068\u3057\u3066\u5f3e\u3044\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3061\u306a\u307f\u306b\u3001\u3053\u306e\u300c<strong>\u9ad9<\/strong>\u300d\u306fIBM\u62e1\u5f35\u6f22\u5b57\u3067\u3059\u3002<\/p>\n\n\n\n<h2 id=\"outline__1\" class=\"wp-block-heading\">\u5b9f\u88c5<\/h2>\n\n\n\n<h3 id=\"outline__1_1\" class=\"wp-block-heading\">SpecificCharValid.java<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n\/**\n * \u6587\u5b57\u5217\u306e\u4e2d\u306b\u3001\u7279\u5b9a\u306e\u6587\u5b57\u304c\u542b\u307e\u308c\u3066\u3044\u305f\u5834\u5408\u306f\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30a8\u30e9\u30fc\u3092\u8fd4\u3059Annotation &lt;br&gt;\n * \u3069\u306e\u6587\u5b57\u304c\u5bfe\u8c61\u3068\u306a\u308b\u304b\u306f{@link SpecificCharEnum}\u53c2\u7167\n *\/\n@Documented\n@Constraint(validatedBy = {SpecificCharValidator.class})\n@Target({ElementType.FIELD})\n@Retention(RetentionPolicy.RUNTIME)\npublic @interface SpecificCharValid {\n\n    String message() default &quot;The characters that cannot be used are included.&quot;;\n    Class&lt;?&gt;&#x5B;] groups() default {};\n    Class&lt;? extends Payload&gt;&#x5B;] payload() default {};\n\n    @Target({ElementType.FIELD})\n    @Retention(RetentionPolicy.RUNTIME)\n    @Documented\n    @interface List {\n        SpecificCharValid&#x5B;] value();\n    }\n}\n<\/pre><\/div>\n\n\n<p>\u3053\u308c\u3067\u3001<code>@SpecificCharValid<\/code>\u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u3068\u3057\u3066\u3001\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u9069\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p><code>@Target({ElementType.FIELD})<\/code>\u3067\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u9069\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3053\u3053\u3067\u306f\u3001\u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u3068\u3057\u3066\u5ba3\u8a00\u3059\u308b\u6587\u5b57\u5217\u3092\u8a2d\u5b9a\u3059\u308b\u7a0b\u5ea6\u306a\u8a18\u8ff0\u3067\u3059\u3002<br>\u5b9f\u969b\u306e\u51e6\u7406\u306f\u6b21\u306e\u30af\u30e9\u30b9\u3067\u884c\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h3 id=\"outline__1_2\" class=\"wp-block-heading\">SpecificCharValidator.java<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n@Slf4j\npublic class SpecificCharValidator implements ConstraintValidator&lt;SpecificCharValid, String&gt; {\n\n    @Override\n    public void initialize(SpecificCharValid constraintAnnotation) {\n    }\n\n    @Override\n    public boolean isValid(String value, ConstraintValidatorContext context) {\n        if (value == null) {\n            return true;\n        }\n\n        char&#x5B;] chars = value.toCharArray();\n        for (char c : chars) {\n            String unicodeStr = Integer.toHexString(c);\n            if (SpecificCharEnum.isSpecificChar(unicodeStr)) {\n                String targetStr = ((ConstraintValidatorContextImpl) context)\n                        .getConstraintViolationCreationContexts().get(0).getPath().toString();\n                log.warn(&quot;\u691c\u77e5\u5bfe\u8c61\u306e\u6587\u5b57\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002\u5bfe\u8c61\u9805\u76ee\uff1a{} \u5024\uff1a\u300c{}\u300d&quot;, targetStr, value);\n                return false;\n            }\n        }\n        return true;\n    }\n}\n<\/pre><\/div>\n\n\n<p><code>@SpecificCharValid<\/code>\u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u306e\u5b9f\u88c5\u30af\u30e9\u30b9\u3067\u3059\u3002<\/p>\n\n\n\n<p>ConstraintValidator\u3092implements\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>isValid()\u3092Override\u3057\u3066\u3044\u3066\u3001true\u306a\u3089\u30a8\u30e9\u30fc\u7121\u3057\u3001false\u306a\u3089\u30a8\u30e9\u30fc\u6709\u308a\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>Enum\u304c\u6301\u3063\u3066\u3044\u308bUnicode\u3068\u3001\u4e0e\u3048\u3089\u308c\u305f\u6587\u5b57\u5217\u306b\u542b\u307e\u308c\u308b\u6587\u5b57\u306eUnicode\u3092\u4e00\u3064\u305a\u3064\u691c\u8a3c\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u691c\u8a3c\u5bfe\u8c61\u306e\u6587\u5b57\u5217\u306f\u5f15\u6570\u306evalue\u3068\u3057\u3066\u305d\u306e\u307e\u307e\u53d7\u3051\u53d6\u308b\u306e\u3067\u3059\u304c\u3001\u300c\u305d\u306evalue\u304c\u3069\u3053\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u5165\u3063\u3066\u3044\u305f\u306e\u304b\u300d\u3068\u3044\u3046\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u60c5\u5831\u306fConstraintValidatorContext\u306b\u683c\u7d0d\u3055\u308c\u3066\u304a\u308a\u3001\u4e0a\u306e\u5b9f\u88c5\u306e\u3088\u3046\u306bConstraintValidatorContextImpl\u306b\u30ad\u30e3\u30b9\u30c8\u3059\u308b\u3053\u3068\u3067\u53d6\u308a\u51fa\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4eca\u56de\u306f\u3001\u30a8\u30e9\u30fc\u3068\u306a\u3063\u305f\u6642\u306b\u30d5\u30a3\u30fc\u30eb\u30c9\u540d\u3082\u4e00\u7dd2\u306b\u30ed\u30b0\u3067\u51fa\u529b\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h3 id=\"outline__1_3\" class=\"wp-block-heading\">SpecificCharEnum.java<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n\/**\n * \u691c\u77e5\u5bfe\u8c61\u6587\u5b57\u306eEnum\n *\/\n@Slf4j\npublic enum SpecificCharEnum {\n\n    SPECIFIC_CHAR_ENUM_1(&quot;\u9ad9&quot;,&quot;9ad9&quot;);\n\n\n    private final String specificChar;\n    private final String unicodeStr;\n\n    SpecificCharEnum(String specificChar, String unicodeStr) {\n        this.specificChar = specificChar;\n        this.unicodeStr = unicodeStr;\n    }\n\n    public String getUnicodeStr() {\n        return unicodeStr;\n    }\n\n    public String getSpecificChar() {\n        return specificChar;\n    }\n\n    public static boolean isSpecificChar(String targetUnicode){\n        for (SpecificCharEnum specificCharEnum: SpecificCharEnum.values()){\n            if (specificCharEnum.getUnicodeStr().equals(targetUnicode)){\n                log.warn(&quot;\u691c\u77e5\u5bfe\u8c61\u306e\u6587\u5b57\u3092\u691c\u77e5\u3057\u307e\u3057\u305f\u3002\u5bfe\u8c61\uff1a{}&quot;,specificCharEnum.getSpecificChar());\n                return true;\n            }\n        }\n        return false;\n    }\n}\n<\/pre><\/div>\n\n\n<p>\u30a8\u30e9\u30fc\u3067\u5f3e\u304f\u5bfe\u8c61\u3068\u306a\u308b\u6587\u5b57\u3092Enum\u3067\u6301\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>Unicode\u60c5\u5831\u3092\u6301\u3063\u3066\u304a\u308a\u3001isSpecificChar\u3067\u4e0e\u3048\u3089\u308c\u305fUnicode\u3068\u5404Enum\u306eUnicode\u3092\u6bd4\u8f03\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h2 id=\"outline__2\" class=\"wp-block-heading\">\u30c6\u30b9\u30c8<\/h2>\n\n\n\n<h3 id=\"outline__2_1\" class=\"wp-block-heading\">SpecificCharValidatorTests.java<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\nclass SpecificCharValidatorTests {\n\n    private Validator validator;\n\n    @BeforeEach\n    void setUp() {\n        validator = Validation.buildDefaultValidatorFactory().getValidator();\n    }\n\n    @MethodSource(&quot;testStrList&quot;)\n    @ParameterizedTest\n    void specificCharTest(String targetStr, boolean expect) {\n        TestBean testBean = new TestBean(targetStr);\n        Set&lt;ConstraintViolation&lt;TestBean&gt;&gt; violations = validator.validate(testBean);\n        assertThat(violations.isEmpty()).isEqualTo(expect);\n    }\n\n    static Stream&lt;Arguments&gt; testStrList() {\n        return Stream.of(\n                Arguments.arguments(&quot;&quot;, true),\n                Arguments.arguments(null, true),\n                Arguments.arguments(&quot;\u590f\u304c\u8fd1\u3065\u304d\u592a\u5e73\u6d0b\u9ad8\u6c17\u5727\u304c\u52e2\u529b\u3092\u5897\u3059\u3088\u3046\u306b\u306a\u308b\u3068&quot;, true),\n                Arguments.arguments(&quot;\u590f\u304c\u8fd1\u3065\u304d\u592a\u5e73\u6d0b\u9ad9\u6c17\u5727\u304c\u52e2\u529b\u3092\u5897\u3059\u3088\u3046\u306b\u306a\u308b\u3068&quot;, false),\n                Arguments.arguments(&quot;\u9ad9\u7b49\u5b66\u6821&quot;, false),\n                Arguments.arguments(&quot;\u9ad8\u7b49\u5b66\u6821&quot;, true)\n        );\n    }\n\n    private static class TestBean {\n        @SpecificCharValid\n        private String targetStr;\n\n        TestBean(String targetStr) {\n            this.targetStr = targetStr;\n        }\n    }\n}\n<\/pre><\/div>\n\n\n<p>\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30a8\u30e9\u30fc\u306b\u5f15\u3063\u639b\u304b\u3063\u305f\u6642\u306e\u30ed\u30b0\u3068\u3057\u3066\u306f\u3053\u3093\u306a\u611f\u3058\u306b\u51fa\u307e\u3059\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n16:14:27.851 &#x5B;main] WARN com.example.demo.validator.SpecificCharEnum - \u5236\u5fa1\u5bfe\u8c61\u306e\u6587\u5b57\u3092\u691c\u77e5\u3057\u307e\u3057\u305f\u3002\u5bfe\u8c61\uff1a\u9ad9\n16:14:27.851 &#x5B;main] WARN com.example.demo.validator.SpecificCharValidator - \u691c\u77e5\u5bfe\u8c61\u306e\u6587\u5b57\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002\u5bfe\u8c61\u9805\u76ee\uff1atargetStr \u5024\uff1a\u300c\u9ad9\u7b49\u5b66\u6821\u300d\n<\/pre><\/div>\n\n\n<h2 id=\"outline__3\" class=\"wp-block-heading\">\u305d\u306e\u4ed6<\/h2>\n\n\n\n<h3 id=\"outline__3_1\" class=\"wp-block-heading\">\u6587\u5b57\u306eUnicode\u3092\u63a2\u3059\u3068\u304d\u306b\u53c2\u8003\u306b\u306a\u308b\u30b5\u30a4\u30c8<\/h3>\n\n\n\n<p><a href=\"https:\/\/0g0.org\/\">0g0.org<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/glyphwiki.org\/wiki\/\">\u30b0\u30ea\u30d5\u30a6\u30a3\u30ad<\/a><\/p>\n\n\n\n<h3 id=\"outline__3_2\" class=\"wp-block-heading\">\u30d7\u30ed\u30b0\u30e9\u30e0\u66f8\u3044\u3066\u51fa\u529b\u3057\u3066\u3082\u3089\u3046<\/h3>\n\n\n\n<p>\u307e\u305f\u3001\u5bfe\u8c61\u306e\u6587\u5b57\u304c\u5206\u304b\u3063\u3066\u3044\u308b\u306e\u3067\u3042\u308c\u3070\u30d7\u30ed\u30b0\u30e9\u30e0\u3067Unicode\u3092\u51fa\u529b\u3057\u3066\u3057\u307e\u3046\u306e\u3082\u30a2\u30ea\u3002<\/p>\n\n\n\n<p>\u4e0a\u306eEnum\u306b\u8ffd\u52a0\u3059\u308b\u60f3\u5b9a\u3067Unicode\u3092\u51fa\u529b\u3059\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u66f8\u3044\u3066\u307f\u308b\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; title: ; notranslate\" title=\"\">\n    @Disabled\n    @Test\n    void outputUnicode(){\n        \/\/\u691c\u77e5\u5bfe\u8c61\u306b\u3057\u305f\u3044\u6587\u5b57\u3092List\u306b\u8ffd\u52a0\u3059\u308b\u3002\n        List&lt;String&gt; strList = List.of(&quot;\u9ad9&quot;, &quot;\u3042&quot;, &quot;\u3044&quot;, &quot;\u2460&quot;);\n\n        for(int i=0;i&lt;strList.size(); i++){\n            char&#x5B;] charArray = strList.get(i).toCharArray();\n            for (char c: charArray){\n                System.out.println(&quot;SPECIFIC_CHAR_ENUM_&quot;+\n                        (i+1)+&quot;(\\&quot;&quot;+strList.get(i)+&quot;\\&quot;,\\&quot;&quot;\n                        +Integer.toHexString(c)+&quot;\\&quot;),&quot;);\n            }\n        }\n    }\n<\/pre><\/div>\n\n\n<p>\u51fa\u529b\u7d50\u679c<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nSPECIFIC_CHAR_ENUM_1(&quot;\u9ad9&quot;,&quot;9ad9&quot;),\nSPECIFIC_CHAR_ENUM_2(&quot;\u3042&quot;,&quot;3042&quot;),\nSPECIFIC_CHAR_ENUM_3(&quot;\u3044&quot;,&quot;3044&quot;),\nSPECIFIC_CHAR_ENUM_4(&quot;\u2460&quot;,&quot;2460&quot;),\n\nProcess finished with exit code 0\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>\u6587\u5b57\u3092Unicode\u306b\u5909\u63db\u3057\u3066Enum\u306b\u6301\u305f\u305b\u3066\u3044\u308b\u5bfe\u8c61\u6587\u5b57\u306eUnicode\u3068\u6bd4\u3079\u3001\u4e00\u81f4\u3057\u3066\u3044\u305f\u3089V [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":257,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[242,96,278,277],"class_list":["post-1203","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programing","tag-annotation","tag-java","tag-unicode","tag-validation"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u6587\u5b57\u3092Unicode\u306b\u5909\u63db\u3057\u3066Enum\u306b\u6301\u305f\u305b\u3066\u3044\u308b\u5bfe\u8c61\u6587\u5b57\u306eUnicode\u3068\u6bd4\u3079\u3001\u4e00\u81f4\u3057\u3066\u3044\u305f\u3089Valida\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"\u3044\u3068\u3068\u3044\"\/>\n\t<meta name=\"google-site-verification\" content=\"dHfPMd0QGg17gHdKjRsKPMBchJp5FPXghry3uflwfwM\" \/>\n\t<meta name=\"keywords\" content=\"java,unicode,validation,annotation\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/ito-u-oti.com\/?p=1203\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"ja_JP\" \/>\n\t\t<meta property=\"og:site_name\" content=\"\u30f0\u5200\u306e\u304a\u3082\u3061\u3083\u7bb1\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\u3010Java\u3011\u7279\u5b9a\u306e\u6587\u5b57\u3060\u3051\u3092\u5f3e\u304fCustom Validation\u3092\u4f5c\u308b | \u30f0\u5200\u306e\u304a\u3082\u3061\u3083\u7bb1\" \/>\n\t\t<meta property=\"og:description\" content=\"\u6587\u5b57\u3092Unicode\u306b\u5909\u63db\u3057\u3066Enum\u306b\u6301\u305f\u305b\u3066\u3044\u308b\u5bfe\u8c61\u6587\u5b57\u306eUnicode\u3068\u6bd4\u3079\u3001\u4e00\u81f4\u3057\u3066\u3044\u305f\u3089Valida\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/ito-u-oti.com\/?p=1203\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/ito-u-oti.com\/wp-content\/uploads\/2018\/03\/java.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/ito-u-oti.com\/wp-content\/uploads\/2018\/03\/java.png\" \/>\n\t\t<meta property=\"og:image:width\" content=\"518\" \/>\n\t\t<meta property=\"og:image:height\" content=\"518\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-07-10T10:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-10T08:00:14+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"\u3010Java\u3011\u7279\u5b9a\u306e\u6587\u5b57\u3060\u3051\u3092\u5f3e\u304fCustom Validation\u3092\u4f5c\u308b | \u30f0\u5200\u306e\u304a\u3082\u3061\u3083\u7bb1\" \/>\n\t\t<meta name=\"twitter:description\" content=\"\u6587\u5b57\u3092Unicode\u306b\u5909\u63db\u3057\u3066Enum\u306b\u6301\u305f\u305b\u3066\u3044\u308b\u5bfe\u8c61\u6587\u5b57\u306eUnicode\u3068\u6bd4\u3079\u3001\u4e00\u81f4\u3057\u3066\u3044\u305f\u3089Valida\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@itouoti_IoT\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/ito-u-oti.com\/wp-content\/uploads\/2018\/03\/java.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/?p=1203#article\",\"name\":\"\\u3010Java\\u3011\\u7279\\u5b9a\\u306e\\u6587\\u5b57\\u3060\\u3051\\u3092\\u5f3e\\u304fCustom Validation\\u3092\\u4f5c\\u308b | \\u30f0\\u5200\\u306e\\u304a\\u3082\\u3061\\u3083\\u7bb1\",\"headline\":\"\\u3010Java\\u3011\\u7279\\u5b9a\\u306e\\u6587\\u5b57\\u3060\\u3051\\u3092\\u5f3e\\u304fCustom Validation\\u3092\\u4f5c\\u308b\",\"author\":{\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/?author=1#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/ito-u-oti.com\\\/wp-content\\\/uploads\\\/2018\\\/03\\\/java.png\",\"width\":518,\"height\":518},\"datePublished\":\"2020-07-10T19:00:00+09:00\",\"dateModified\":\"2020-07-10T17:00:14+09:00\",\"inLanguage\":\"ja\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/?p=1203#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/?p=1203#webpage\"},\"articleSection\":\"\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0, annotation, java, Unicode, validation\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/?p=1203#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/ito-u-oti.com#listItem\",\"position\":1,\"name\":\"\\u30db\\u30fc\\u30e0\",\"item\":\"https:\\\/\\\/ito-u-oti.com\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/?cat=6#listItem\",\"name\":\"\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/?cat=6#listItem\",\"position\":2,\"name\":\"\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0\",\"item\":\"https:\\\/\\\/ito-u-oti.com\\\/?cat=6\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/?p=1203#listItem\",\"name\":\"\\u3010Java\\u3011\\u7279\\u5b9a\\u306e\\u6587\\u5b57\\u3060\\u3051\\u3092\\u5f3e\\u304fCustom Validation\\u3092\\u4f5c\\u308b\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/ito-u-oti.com#listItem\",\"name\":\"\\u30db\\u30fc\\u30e0\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/?p=1203#listItem\",\"position\":3,\"name\":\"\\u3010Java\\u3011\\u7279\\u5b9a\\u306e\\u6587\\u5b57\\u3060\\u3051\\u3092\\u5f3e\\u304fCustom Validation\\u3092\\u4f5c\\u308b\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/?cat=6#listItem\",\"name\":\"\\u30d7\\u30ed\\u30b0\\u30e9\\u30df\\u30f3\\u30b0\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/#person\",\"name\":\"\\u3044\\u3068\\u3068\\u3044\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/?p=1203#personImage\",\"url\":\"https:\\\/\\\/ito-u-oti.com\\\/wp-content\\\/uploads\\\/2021\\\/06\\\/IMG_20191231_122527_095-150x150.jpg\",\"width\":96,\"height\":96,\"caption\":\"\\u3044\\u3068\\u3068\\u3044\"},\"sameAs\":[\"https:\\\/\\\/twitter.com\\\/itouoti_IoT\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/?author=1#author\",\"url\":\"https:\\\/\\\/ito-u-oti.com\\\/?author=1\",\"name\":\"\\u3044\\u3068\\u3068\\u3044\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/?p=1203#authorImage\",\"url\":\"https:\\\/\\\/ito-u-oti.com\\\/wp-content\\\/uploads\\\/2021\\\/06\\\/IMG_20191231_122527_095-150x150.jpg\",\"width\":96,\"height\":96,\"caption\":\"\\u3044\\u3068\\u3068\\u3044\"},\"sameAs\":[\"https:\\\/\\\/twitter.com\\\/itouoti_IoT\"]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/?p=1203#webpage\",\"url\":\"https:\\\/\\\/ito-u-oti.com\\\/?p=1203\",\"name\":\"\\u3010Java\\u3011\\u7279\\u5b9a\\u306e\\u6587\\u5b57\\u3060\\u3051\\u3092\\u5f3e\\u304fCustom Validation\\u3092\\u4f5c\\u308b | \\u30f0\\u5200\\u306e\\u304a\\u3082\\u3061\\u3083\\u7bb1\",\"description\":\"\\u6587\\u5b57\\u3092Unicode\\u306b\\u5909\\u63db\\u3057\\u3066Enum\\u306b\\u6301\\u305f\\u305b\\u3066\\u3044\\u308b\\u5bfe\\u8c61\\u6587\\u5b57\\u306eUnicode\\u3068\\u6bd4\\u3079\\u3001\\u4e00\\u81f4\\u3057\\u3066\\u3044\\u305f\\u3089Valida\",\"inLanguage\":\"ja\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/?p=1203#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/?author=1#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/?author=1#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/ito-u-oti.com\\\/wp-content\\\/uploads\\\/2018\\\/03\\\/java.png\",\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/?p=1203\\\/#mainImage\",\"width\":518,\"height\":518},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/?p=1203#mainImage\"},\"datePublished\":\"2020-07-10T19:00:00+09:00\",\"dateModified\":\"2020-07-10T17:00:14+09:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/#website\",\"url\":\"https:\\\/\\\/ito-u-oti.com\\\/\",\"name\":\"\\u30f0\\u5200\\u306e\\u304a\\u3082\\u3061\\u3083\\u7bb1\",\"description\":\"music\\u00d7IT\\u00d7guiter\\u00d7programing\",\"inLanguage\":\"ja\",\"publisher\":{\"@id\":\"https:\\\/\\\/ito-u-oti.com\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\u3010Java\u3011\u7279\u5b9a\u306e\u6587\u5b57\u3060\u3051\u3092\u5f3e\u304fCustom Validation\u3092\u4f5c\u308b | \u30f0\u5200\u306e\u304a\u3082\u3061\u3083\u7bb1","description":"\u6587\u5b57\u3092Unicode\u306b\u5909\u63db\u3057\u3066Enum\u306b\u6301\u305f\u305b\u3066\u3044\u308b\u5bfe\u8c61\u6587\u5b57\u306eUnicode\u3068\u6bd4\u3079\u3001\u4e00\u81f4\u3057\u3066\u3044\u305f\u3089Valida","canonical_url":"https:\/\/ito-u-oti.com\/?p=1203","robots":"max-image-preview:large","keywords":"java,unicode,validation,annotation","webmasterTools":{"google-site-verification":"dHfPMd0QGg17gHdKjRsKPMBchJp5FPXghry3uflwfwM","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ito-u-oti.com\/?p=1203#article","name":"\u3010Java\u3011\u7279\u5b9a\u306e\u6587\u5b57\u3060\u3051\u3092\u5f3e\u304fCustom Validation\u3092\u4f5c\u308b | \u30f0\u5200\u306e\u304a\u3082\u3061\u3083\u7bb1","headline":"\u3010Java\u3011\u7279\u5b9a\u306e\u6587\u5b57\u3060\u3051\u3092\u5f3e\u304fCustom Validation\u3092\u4f5c\u308b","author":{"@id":"https:\/\/ito-u-oti.com\/?author=1#author"},"publisher":{"@id":"https:\/\/ito-u-oti.com\/#person"},"image":{"@type":"ImageObject","url":"https:\/\/ito-u-oti.com\/wp-content\/uploads\/2018\/03\/java.png","width":518,"height":518},"datePublished":"2020-07-10T19:00:00+09:00","dateModified":"2020-07-10T17:00:14+09:00","inLanguage":"ja","mainEntityOfPage":{"@id":"https:\/\/ito-u-oti.com\/?p=1203#webpage"},"isPartOf":{"@id":"https:\/\/ito-u-oti.com\/?p=1203#webpage"},"articleSection":"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0, annotation, java, Unicode, validation"},{"@type":"BreadcrumbList","@id":"https:\/\/ito-u-oti.com\/?p=1203#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/ito-u-oti.com#listItem","position":1,"name":"\u30db\u30fc\u30e0","item":"https:\/\/ito-u-oti.com","nextItem":{"@type":"ListItem","@id":"https:\/\/ito-u-oti.com\/?cat=6#listItem","name":"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0"}},{"@type":"ListItem","@id":"https:\/\/ito-u-oti.com\/?cat=6#listItem","position":2,"name":"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0","item":"https:\/\/ito-u-oti.com\/?cat=6","nextItem":{"@type":"ListItem","@id":"https:\/\/ito-u-oti.com\/?p=1203#listItem","name":"\u3010Java\u3011\u7279\u5b9a\u306e\u6587\u5b57\u3060\u3051\u3092\u5f3e\u304fCustom Validation\u3092\u4f5c\u308b"},"previousItem":{"@type":"ListItem","@id":"https:\/\/ito-u-oti.com#listItem","name":"\u30db\u30fc\u30e0"}},{"@type":"ListItem","@id":"https:\/\/ito-u-oti.com\/?p=1203#listItem","position":3,"name":"\u3010Java\u3011\u7279\u5b9a\u306e\u6587\u5b57\u3060\u3051\u3092\u5f3e\u304fCustom Validation\u3092\u4f5c\u308b","previousItem":{"@type":"ListItem","@id":"https:\/\/ito-u-oti.com\/?cat=6#listItem","name":"\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0"}}]},{"@type":"Person","@id":"https:\/\/ito-u-oti.com\/#person","name":"\u3044\u3068\u3068\u3044","image":{"@type":"ImageObject","@id":"https:\/\/ito-u-oti.com\/?p=1203#personImage","url":"https:\/\/ito-u-oti.com\/wp-content\/uploads\/2021\/06\/IMG_20191231_122527_095-150x150.jpg","width":96,"height":96,"caption":"\u3044\u3068\u3068\u3044"},"sameAs":["https:\/\/twitter.com\/itouoti_IoT"]},{"@type":"Person","@id":"https:\/\/ito-u-oti.com\/?author=1#author","url":"https:\/\/ito-u-oti.com\/?author=1","name":"\u3044\u3068\u3068\u3044","image":{"@type":"ImageObject","@id":"https:\/\/ito-u-oti.com\/?p=1203#authorImage","url":"https:\/\/ito-u-oti.com\/wp-content\/uploads\/2021\/06\/IMG_20191231_122527_095-150x150.jpg","width":96,"height":96,"caption":"\u3044\u3068\u3068\u3044"},"sameAs":["https:\/\/twitter.com\/itouoti_IoT"]},{"@type":"WebPage","@id":"https:\/\/ito-u-oti.com\/?p=1203#webpage","url":"https:\/\/ito-u-oti.com\/?p=1203","name":"\u3010Java\u3011\u7279\u5b9a\u306e\u6587\u5b57\u3060\u3051\u3092\u5f3e\u304fCustom Validation\u3092\u4f5c\u308b | \u30f0\u5200\u306e\u304a\u3082\u3061\u3083\u7bb1","description":"\u6587\u5b57\u3092Unicode\u306b\u5909\u63db\u3057\u3066Enum\u306b\u6301\u305f\u305b\u3066\u3044\u308b\u5bfe\u8c61\u6587\u5b57\u306eUnicode\u3068\u6bd4\u3079\u3001\u4e00\u81f4\u3057\u3066\u3044\u305f\u3089Valida","inLanguage":"ja","isPartOf":{"@id":"https:\/\/ito-u-oti.com\/#website"},"breadcrumb":{"@id":"https:\/\/ito-u-oti.com\/?p=1203#breadcrumblist"},"author":{"@id":"https:\/\/ito-u-oti.com\/?author=1#author"},"creator":{"@id":"https:\/\/ito-u-oti.com\/?author=1#author"},"image":{"@type":"ImageObject","url":"https:\/\/ito-u-oti.com\/wp-content\/uploads\/2018\/03\/java.png","@id":"https:\/\/ito-u-oti.com\/?p=1203\/#mainImage","width":518,"height":518},"primaryImageOfPage":{"@id":"https:\/\/ito-u-oti.com\/?p=1203#mainImage"},"datePublished":"2020-07-10T19:00:00+09:00","dateModified":"2020-07-10T17:00:14+09:00"},{"@type":"WebSite","@id":"https:\/\/ito-u-oti.com\/#website","url":"https:\/\/ito-u-oti.com\/","name":"\u30f0\u5200\u306e\u304a\u3082\u3061\u3083\u7bb1","description":"music\u00d7IT\u00d7guiter\u00d7programing","inLanguage":"ja","publisher":{"@id":"https:\/\/ito-u-oti.com\/#person"}}]},"og:locale":"ja_JP","og:site_name":"\u30f0\u5200\u306e\u304a\u3082\u3061\u3083\u7bb1","og:type":"article","og:title":"\u3010Java\u3011\u7279\u5b9a\u306e\u6587\u5b57\u3060\u3051\u3092\u5f3e\u304fCustom Validation\u3092\u4f5c\u308b | \u30f0\u5200\u306e\u304a\u3082\u3061\u3083\u7bb1","og:description":"\u6587\u5b57\u3092Unicode\u306b\u5909\u63db\u3057\u3066Enum\u306b\u6301\u305f\u305b\u3066\u3044\u308b\u5bfe\u8c61\u6587\u5b57\u306eUnicode\u3068\u6bd4\u3079\u3001\u4e00\u81f4\u3057\u3066\u3044\u305f\u3089Valida","og:url":"https:\/\/ito-u-oti.com\/?p=1203","og:image":"https:\/\/ito-u-oti.com\/wp-content\/uploads\/2018\/03\/java.png","og:image:secure_url":"https:\/\/ito-u-oti.com\/wp-content\/uploads\/2018\/03\/java.png","og:image:width":518,"og:image:height":518,"article:published_time":"2020-07-10T10:00:00+00:00","article:modified_time":"2020-07-10T08:00:14+00:00","twitter:card":"summary","twitter:title":"\u3010Java\u3011\u7279\u5b9a\u306e\u6587\u5b57\u3060\u3051\u3092\u5f3e\u304fCustom Validation\u3092\u4f5c\u308b | \u30f0\u5200\u306e\u304a\u3082\u3061\u3083\u7bb1","twitter:description":"\u6587\u5b57\u3092Unicode\u306b\u5909\u63db\u3057\u3066Enum\u306b\u6301\u305f\u305b\u3066\u3044\u308b\u5bfe\u8c61\u6587\u5b57\u306eUnicode\u3068\u6bd4\u3079\u3001\u4e00\u81f4\u3057\u3066\u3044\u305f\u3089Valida","twitter:creator":"@itouoti_IoT","twitter:image":"https:\/\/ito-u-oti.com\/wp-content\/uploads\/2018\/03\/java.png"},"aioseo_meta_data":{"post_id":"1203","title":null,"description":null,"keywords":[{"label":"java","value":"java"},{"label":"Unicode","value":"Unicode"},{"label":"validation","value":"validation"},{"label":"annotation","value":"annotation"}],"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":"","og_description":"","og_object_type":"article","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":"","og_article_tags":"","twitter_use_og":false,"twitter_card":"summary","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[],"defaultGraph":"","defaultPostTypeGraph":""},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2021-04-11 14:07:34","updated":"2025-06-04 06:05:57","seo_analyzer_scan_date":null},"_links":{"self":[{"href":"https:\/\/ito-u-oti.com\/index.php?rest_route=\/wp\/v2\/posts\/1203","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ito-u-oti.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ito-u-oti.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ito-u-oti.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ito-u-oti.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1203"}],"version-history":[{"count":2,"href":"https:\/\/ito-u-oti.com\/index.php?rest_route=\/wp\/v2\/posts\/1203\/revisions"}],"predecessor-version":[{"id":1205,"href":"https:\/\/ito-u-oti.com\/index.php?rest_route=\/wp\/v2\/posts\/1203\/revisions\/1205"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ito-u-oti.com\/index.php?rest_route=\/wp\/v2\/media\/257"}],"wp:attachment":[{"href":"https:\/\/ito-u-oti.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1203"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ito-u-oti.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1203"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ito-u-oti.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1203"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}