{"id":415,"date":"2025-11-14T11:42:32","date_gmt":"2025-11-14T10:42:32","guid":{"rendered":"http:\/\/justmakeit.es\/?p=415"},"modified":"2025-11-14T13:17:46","modified_gmt":"2025-11-14T12:17:46","slug":"un-tratamiento-elegante-del-paso-de-parametros-en-un-proceso","status":"publish","type":"post","link":"http:\/\/justmakeit.es\/?p=415","title":{"rendered":"Un tratamiento elegante del paso de par\u00e1metros en un proceso"},"content":{"rendered":"\n<p>Estoy trasteando con un proceso de Gobernanza de datos para un proyecto en el que trabajo y he visto una manera interesante de pasar par\u00e1metros a la clase Main.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> Map cli = parseArgs(Arrays.copyOfRange(args, 1, args.length));\n<\/pre>\n\n\n\n<p>Con esto, el primer par\u00e1metro viene siendo la \u00abelecci\u00f3n de men\u00fa\u00bb, que va a ejecutar uno de los distintos subprocesos disponibles.<\/p>\n\n\n\n<p>A partir del segundo, recuperamos los par\u00e1metros por parejas por su nombre y los guardamos en un Map disponible posteriormente.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> String db = cli.getOrDefault(\"--db\", \"\");<br> String table = cli.getOrDefault(\"--table\", \"\");<br> String out = cli.getOrDefault(\"--out\", \"out\");<\/pre>\n\n\n\n<p>La llamada a la clase Main quedar\u00eda as\u00ed.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"> com.example.lake.Main 1 --db db_name --table table_name<\/pre>\n\n\n\n<p>Se puede tener tantos par\u00e1metros como sean necesarios siempre que se incluya un valor default para ellos que evite el error.<\/p>\n\n\n\n<p>Esto utiliza el m\u00e9todo&#8230;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">private static Map&lt;String, String&gt; parseArgs(String[] args) {<br><br>    System.<em>out<\/em>.println(\"Parsing arguments: \" + Arrays.<em>toString<\/em>(args));<br>    Map&lt;String, String&gt; m = new HashMap&lt;&gt;();<br>    for (int i = 0; i &lt; args.length; i++) {<br>        if (args[i].startsWith(\"--\")) {<br>            String key = args[i];<br>            String val = (i + 1 &lt; args.length &amp;&amp; !args[i+1].startsWith(\"--\")) ? args[++i] : \"\";<br>            m.put(key, val);<br>        }<br>    }<br>    return m;<br>}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Estoy trasteando con un proceso de Gobernanza de datos para un proyecto en el que trabajo y he visto una &hellip; <a href=\"http:\/\/justmakeit.es\/?p=415\" class=\"btn btn-readmore\">Read More <span class=\"screen-reader-text\"> \u00abUn tratamiento elegante del paso de par\u00e1metros en un proceso\u00bb<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,14],"tags":[36,56],"class_list":["post-415","post","type-post","status-publish","format-standard","hentry","category-java","category-programacion","tag-java","tag-main"],"_links":{"self":[{"href":"http:\/\/justmakeit.es\/index.php?rest_route=\/wp\/v2\/posts\/415","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/justmakeit.es\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/justmakeit.es\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/justmakeit.es\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/justmakeit.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=415"}],"version-history":[{"count":11,"href":"http:\/\/justmakeit.es\/index.php?rest_route=\/wp\/v2\/posts\/415\/revisions"}],"predecessor-version":[{"id":426,"href":"http:\/\/justmakeit.es\/index.php?rest_route=\/wp\/v2\/posts\/415\/revisions\/426"}],"wp:attachment":[{"href":"http:\/\/justmakeit.es\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=415"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/justmakeit.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=415"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/justmakeit.es\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}