{"id":917,"date":"2018-09-17T18:23:52","date_gmt":"2018-09-17T09:23:52","guid":{"rendered":"https:\/\/chat-messenger.com\/?p=917"},"modified":"2018-12-23T02:02:31","modified_gmt":"2018-12-22T17:02:31","slug":"reflect-util","status":"publish","type":"post","link":"https:\/\/chat-messenger.com\/id\/blog\/java\/mencerminkan-kegunaan","title":{"rendered":"Refleksi Java menjadi mudah"},"content":{"rendered":"<h2 class=\"common_title\">Refleksi Java menjadi mudah<\/h2>\n<p>\n<strong>Jawa<\/strong>dari<strong>cerminan<\/strong>Memperkenalkan kelas utilitas yang memungkinkan Anda menggunakan API dengan mudah.\n<\/p>\n<h2 class=\"common_title\"><a name=\"1\">Apa itu refleksi?<\/a><\/h2>\n<p>\n<strong>API Refleksi<\/strong>gigi,&quot;<strong>Java.lang.reflect<\/strong>\u201d termasuk dalam paket,<br \/>\nIni adalah API yang mengambil informasi seperti bidang dan metode dari kelas Java.<br \/>\nKelas-kelas berikut ini terutama digunakan.\n<\/p>\n<ul>\n<li><strong>java.lang.Kelas<\/strong><\/li>\n<li><strong>java.lang.reflect.Constructor<\/strong><\/li>\n<li><strong>java.lang.reflect.Metode<\/strong><\/li>\n<li><strong>java.lang.reflect.Field<\/strong><\/li>\n<\/ul>\n<p>\n<strong>cerminan<\/strong>Dengan menggunakan , Anda dapat membuat kelas atau memanggil metode tanpa harus mengkodekannya secara langsung.<br \/>\nAnda dapat membuat instance kelas dari string atau menjalankan suatu metode.<\/p>\n<p>Dengan menulis definisi nama kelas dan nama metode dalam file eksternal seperti XML, Anda dapat secara dinamis menyesuaikan aplikasi dengan perubahan lingkungan selama runtime.<br \/>\nIni juga merupakan API yang sangat efektif untuk membangun aplikasi yang sangat fleksibel.\n<\/p>\n<p><script type=\"text\/javascript\" src=\"https:\/\/chat-messenger.com\/js\/common.js?dd12sssas2223\" charset=\"UTF-8\"><\/script><br \/>\n<script type=\"text\/javascript\"> writePR(); <\/script><\/p>\n<h2 class=\"common_title\"><a name=\"2\">Tujuan refleksi<\/a><\/h2>\n<p>\n<strong>cerminan<\/strong>tidak sering digunakan langsung oleh pengguna,<br \/>\nIni banyak digunakan dalam aplikasi web seperti Struts dan kerangka kerja seperti pemetaan O\/R.<br \/>\n<br \/>\nMisalnya, ketika secara otomatis mengatur data input layar web ke properti JavaBeans,<br \/>\nIni digunakan ketika mengeluarkan SQL yang secara otomatis diperbarui berdasarkan properti JavaBeans.<\/p>\n<p>Selain itu, fungsi seperti memuat dan mendaftarkan plug-in secara dinamis yang memperluas fungsionalitas saat aplikasi dimulai juga tersedia.<strong>cerminan<\/strong>Hal ini dapat dengan mudah dicapai dengan menggunakan .\n<\/p>\n<h2 class=\"common_title\"><a name=\"3\">Menjalankan sampel<\/a><\/h2>\n<p>\nSilakan jalankan contoh dan rasakan pemrograman seperti kerangka kerja.<br \/>\n<br \/>\nDi sini kita menggunakan kelas berikut<strong>cerminan<\/strong>Menunjukkan penggunaan utilitas yang sederhana.<br \/>\n<br \/>\n<a href=\"https:\/\/chat-messenger.com\/other\/java\/Main.txt\" target=\"_blank\"><strong>Main.java<\/strong><\/a>...Kelas yang akan dieksekusi<br \/>\n<a href=\"https:\/\/chat-messenger.com\/other\/java\/BeanUtil.txt\" target=\"_blank\"><strong>BeanUtil.java<\/strong><\/a>...Kelas utilitas refleksi<br \/>\n<a href=\"https:\/\/chat-messenger.com\/other\/java\/FreeSoft.txt\" target=\"_blank\"><strong>FreeSoft.java<\/strong><\/a>...Digunakan sebagai refleksi di kelas yang mewakili perangkat lunak bebas.<\/p>\n<p><strong>\u25cfBila dijalankan secara normal<\/strong>\n<\/p>\n<div class=\"point\">\nSistem.keluar.println(<span style=\"color: #0000FF;\">\u201c\uff1e\uff1e\uff1eKasus biasa\u201d<\/span>); <br \/>\nFreeSoft freeSoft = FreeSoft baru(); <br \/>\nfreeSoft.setName<span style=\"color: #0000FF;\">(\u201cObrolan &amp; Messenger Obrolan dan Messenger !!\u201d<\/span>); <br \/>\nfreeSoft.showName(); <br \/>\nfreeSoft.showPrice(0);\n<\/div>\n<p>\n<strong>\u25cfSaat dieksekusi menggunakan refleksi<\/strong><\/p>\n<div class=\"point\">\nSistem.keluar.println<span style=\"color: #0000FF;\">(\u201c\uff1e\uff1e\uff1eSaat menggunakan refleksi\u201d<\/span>); <br \/>\n<span style=\"color: #00CC33;\">\/\/Buat sebuah instance dari kelas FreeSoft <\/span><br \/>\nObjek invokeObject = BeanUtil.newInstance<span style=\"color: #0000FF;\">(\u201cPerangkat Lunak Gratis\u201d<\/span>); <br \/>\n<span style=\"color: #00CC33;\">\/\/Tetapkan nilai pada kolom nama. <\/span><br \/>\nBeanUtil.setProperty(invokeObject, <span style=\"color: #0000FF;\">&quot;nama&quot;<\/span> , <span style=\"color: #0000FF;\">\u201cObrolan &amp; Obrolan Messenger dan Messenger !!\u201d<\/span>); <br \/>\n<span style=\"color: #00CC33;\">\/\/ Jalankan metode showName() FreeSoft. <\/span><br \/>\nBeanUtil.invoke(invokeObject, <span style=\"color: #0000FF;\">\u201cnama acara\u201d<\/span>, batal); <br \/>\n<span style=\"color: #00CC33;\">\/\/ Jalankan metode showPrice() FreeSoft. <\/span><br \/>\n<span style=\"color: #00CC33;\">\/\/ Jika metode mempunyai argumen, argumen tersebut harus diteruskan sebagai array tipe Objek. <\/span><br \/>\nBeanUtil.invoke(invokeObject, <span style=\"color: #0000FF;\">\u201charga pertunjukan\u201d<\/span>,Objek baru[]{Integer baru(0)});\n<\/div>\n\n<p><strong>\u25cfHasil eksekusi<\/strong><br \/>\n<br \/>Hasil eksekusinya sama baik dalam kasus normal maupun saat menggunakan refleksi.<\/p>\n<div class=\"console\">\n&gt;&gt;&gt; Kasus biasa<br \/>\n<br \/>Nama perangkat lunak: Obrolan &amp; Messenger Obrolan dan messenger! !<br \/>\n<br \/>Harga: 0 yen<\/p>\n<p>&gt;&gt;&gt; Saat menggunakan refleksi<br \/>\n<br \/>Nama perangkat lunak: Obrolan &amp; Messenger Obrolan dan messenger! !<br \/>\n<br \/>Harga: 0 yen\n<\/div>\n\n<h2 class=\"common_title\"><a name=\"4\">Detail metode BeanUtil<\/a><\/h2>\n<p><a name=\"newInstance(String)\"><!-- --><\/a><\/p>\n<h2>\ncontoh baru<\/h2>\n<pre>objek statis publik <b>contoh baru<\/b>(String className) memunculkan Pengecualian<\/pre>\n<dl>\n<dd>Menghasilkan dan mengembalikan sebuah instance dari string &quot;className&quot;.<\/p>\n<\/dd>\n<dd>\n<dl>\n<dt><b>Parameter:<\/b><\/dt>\n<dd><code>nama kelas<\/code> \u2013 Nama kelas yang sepenuhnya memenuhi syarat\n<\/dd>\n<dt><b>Nilai pengembalian:<\/b><\/dt>\n<dd>Sebuah contoh baru dari nama kelas yang sepenuhnya memenuhi syarat\n<\/dd>\n<dt><b>pengecualian:<\/b>\n<\/dt>\n<dd><code>Pengecualian<\/code><\/dd>\n<\/dl>\n<\/dd>\n<\/dl>\n<hr>\n<p><a name=\"newInstance(String, Object[])\"><!-- --><\/a><\/p>\n<h2>\ncontoh baru<\/h2>\n<pre>objek statis publik <b>contoh baru<\/b>(String className, Object[] argObj) memunculkan Pengecualian<\/pre>\n<dl>\n<dd>Menghasilkan dan mengembalikan sebuah instance dari string &quot;className&quot;.<\/p>\n<\/dd>\n<dd>\n<dl>\n<dt><b>Parameter:<\/b><\/dt>\n<dd><code>nama kelas<\/code> \u2013 Nama kelas yang sepenuhnya memenuhi syarat<\/dd>\n<dd><code>argObj<\/code> \u2013 Argumen konstruktor\n<\/dd>\n<dt><b>Nilai pengembalian:<\/b><\/dt>\n<dd>Sebuah contoh baru dari nama kelas yang sepenuhnya memenuhi syarat\n<\/dd>\n<dt><b>pengecualian:<\/b>\n<\/dt>\n<dd><code>Pengecualian<\/code><\/dd>\n<\/dl>\n<\/dd>\n<\/dl>\n<hr>\n<p><a name=\"newInstance(Class)\"><!-- --><\/a><\/p>\n<h2>\ncontoh baru<\/h2>\n<pre>objek statis publik <b>contoh baru<\/b>(Kelas clazz) melempar Pengecualian<\/pre>\n<dl>\n<dd>Menghasilkan dan mengembalikan sebuah instance dari kelas &quot;clazz&quot;.<\/p>\n<\/dd>\n<dd>\n<dl>\n<dt><b>Parameter:<\/b><\/dt>\n<dd><code>keren<\/code> - kelas\n<\/dd>\n<dt><b>Nilai pengembalian:<\/b><\/dt>\n<dd>contoh baru clazz\n<\/dd>\n<dt><b>pengecualian:<\/b>\n<\/dt>\n<dd><code>Pengecualian<\/code><\/dd>\n<\/dl>\n<\/dd>\n<\/dl>\n<hr>\n<p><a name=\"newInstance(Class, Object[])\"><!-- --><\/a><\/p>\n<h2>\ncontoh baru<\/h2>\n<pre>objek statis publik <b>contoh baru<\/b>(Kelas clazz, Objek[] argObj) memunculkan Pengecualian<\/pre>\n<dl>\n<dd>Menghasilkan dan mengembalikan sebuah instance dari kelas &quot;clazz&quot;.<\/p>\n<\/dd>\n<dd>\n<dl>\n<dt><b>Parameter:<\/b><\/dt>\n<dd><code>keren<\/code> - kelas<\/dd>\n<dd><code>argObj<\/code> \u2013 Argumen konstruktor\n<\/dd>\n<dt><b>Nilai pengembalian:<\/b><\/dt>\n<dd>contoh baru clazz\n<\/dd>\n<dt><b>pengecualian:<\/b>\n<\/dt>\n<dd><code>Pengecualian<\/code><\/dd>\n<\/dl>\n<\/dd>\n<\/dl>\n<hr>\n<p><a name=\"setProperty(Object, String, Object)\"><!-- --><\/a><\/p>\n<h2>\nsetProperti<\/h2>\n<pre>kekosongan statis publik <b>setProperti<\/b>(Objek invokeObject, String fieldName, Nilai objek) memunculkan Pengecualian<\/pre>\n<dl>\n<dd>Panggil metode penyetel bidang &quot;fieldName&quot; dari objek &quot;invokeObject&quot; dan simpan nilai &quot;value&quot;.<\/p>\n<p> Jika tidak ada metode penyetel, nilai akan ditetapkan langsung ke kolom. Namun, dalam kasus ini, pengubah akses properti target harus bersifat publik.<\/p>\n<\/dd>\n<dd>\n<dl>\n<dt><b>Parameter:<\/b><\/dt>\n<dd><code>memanggilObjek<\/code> \u2013 Objek yang akan dieksekusi<\/dd>\n<dd><code>Nama bidang<\/code> \u2013 Nama properti objek yang akan dieksekusi<\/dd>\n<dd><code>nilai<\/code> \u2013 Nilai yang akan ditetapkan\n<\/dd>\n<dt><b>pengecualian:<\/b>\n<\/dt>\n<dd><code>Pengecualian<\/code> \u2013 Pengecualian berikut terjadi.\n<\/dd>\n<dd><code>InvocationTargetException<\/code> \u2013 Jika metode yang mendasari memunculkan pengecualian\n<\/dd>\n<dd><code>IlegalAccessException<\/code> \u2013 Objek Metode ini adalah Java<br \/>\n             Ketika kontrol akses bahasa diterapkan dan metode yang mendasarinya tidak dapat diakses\n<\/dd>\n<dd><code>Tidak AdaMetodePengecualian<\/code> \u2013 Jika metode dengan nama yang ditentukan tidak ditemukan<\/dd>\n<\/dl>\n<\/dd>\n<\/dl>\n<hr>\n<p><a name=\"getProperty(Object, String)\"><!-- --><\/a><\/p>\n<h2>\ndapatkan Properti<\/h2>\n<pre>objek statis publik <b>dapatkan Properti<\/b>(Objek invokeObject, String fieldName) memunculkan Pengecualian<\/pre>\n<dl>\n<dd>Memanggil metode pengambil bidang fieldName objek invokeObject untuk mendapatkan nilai.<br \/>\n Jika tidak ada metode pengambil, nilai akan diambil langsung dari kolom. Namun, dalam kasus ini, pengubah akses properti target harus bersifat publik.<\/p>\n<\/dd>\n<dd>\n<dl>\n<dt><b>Parameter:<\/b><\/dt>\n<dd><code>memanggilObjek<\/code> \u2013 Objek yang akan dieksekusi<\/dd>\n<dd><code>Nama bidang<\/code> \u2013 Nama properti objek yang akan dieksekusi\n<\/dd>\n<dt><b>Nilai pengembalian:<\/b><\/dt>\n<dd>Nilai pengembalian metode pengambil\n<\/dd>\n<dt><b>pengecualian:<\/b>\n<\/dt>\n<dd><code>Pengecualian<\/code> \u2013 Pengecualian berikut terjadi.\n<\/dd>\n<dd><code>InvocationTargetException<\/code> \u2013 Jika metode yang mendasari memunculkan pengecualian\n<\/dd>\n<dd><code>IlegalAccessException<\/code> \u2013 Objek Metode ini adalah Java<br \/>\n             Ketika kontrol akses bahasa diterapkan dan metode yang mendasarinya tidak dapat diakses\n<\/dd>\n<dd><code>Tidak Ada Pengecualian Bidang Tersebut<\/code> \u2013 Jika field dengan nama yang ditentukan tidak ditemukan<\/dd>\n<\/dl>\n<\/dd>\n<\/dl>\n<hr>\n<p><a name=\"invoke(Object, String, Object[])\"><!-- --><\/a><\/p>\n<h2>\nmemohon<\/h2>\n<pre>objek statis publik <b>memohon<\/b>(Objek invokeObject, String callMethod, Object[] argObjects) melempar InvocationTargetException, IllegalAccessException, NoSuchMethodException<\/pre>\n<dl>\n<dd>Menjalankan metode &quot;callMethod&quot; dari objek &quot;invokeObject&quot;.<br \/>\n Jika ada nilai kembalian, maka dapat diperoleh sebagai Objek.<\/p>\n<\/dd>\n<dd>\n<dl>\n<dt><b>Parameter:<\/b><\/dt>\n<dd><code>memanggilObjek<\/code> \u2013 Objek yang akan dieksekusi<\/dd>\n<dd><code>metode panggilan<\/code> \u2013 Nama metode yang akan dieksekusi<\/dd>\n<dd><code>argObjects<\/code> \u2013 Jika ada argumen, teruskan argumen tersebut sebagai array objek. Jika tidak ada argumen, berikan null.\n<\/dd>\n<dt><b>Nilai pengembalian:<\/b><\/dt>\n<dd>Nilai kembalian dari mengeksekusi &quot;callMethod&quot;\n<\/dd>\n<dt><b>pengecualian:<\/b>\n<\/dt>\n<dd><code>InvocationTargetException<\/code> \u2013 Jika metode yang mendasari memunculkan pengecualian\n<\/dd>\n<dd><code>IlegalAccessException<\/code> \u2013 Objek Metode ini adalah Java<br \/>\n             Ketika kontrol akses bahasa diterapkan dan metode yang mendasarinya tidak dapat diakses\n<\/dd>\n<dd><code>Tidak AdaMetodePengecualian<\/code> \u2013 Jika metode dengan nama yang ditentukan tidak ditemukan<\/dd>\n<\/dl>\n<\/dd>\n<\/dl>\n<hr>\n<p><a name=\"findMethod(Object, String, Object[])\"><!-- --><\/a><\/p>\n<h2>\ntemukanMetode<\/h2>\n<pre>metode statis publik <b>temukanMetode<\/b>(Objek invokeObject, String callMethod, Object[] argObjects) melempar NoSuchMethodException<\/pre>\n<dl>\n<dd>Cari metode &#039;callMethod&#039; dari objek &#039;invokeObject&#039;.<\/p>\n<\/dd>\n<dd>\n<dl>\n<dt><b>Parameter:<\/b><\/dt>\n<dd><code>memanggilObjek<\/code> \u2013 Objek yang akan dieksekusi<\/dd>\n<dd><code>metode panggilan<\/code> \u2013 Nama metode objek yang akan dieksekusi<\/dd>\n<dd><code>argObjects<\/code> \u2013 Jika ada argumen, teruskan argumen tersebut sebagai array objek. Jika tidak ada argumen, berikan null.\n<\/dd>\n<dt><b>Nilai pengembalian:<\/b><\/dt>\n<dd>Objek Metode yang cocok dengan kondisi argumen yang ditentukan\n<\/dd>\n<dt><b>pengecualian:<\/b>\n<\/dt>\n<dd><code>Tidak AdaMetodePengecualian<\/code> \u2013 Jika tidak ditemukan metode yang cocok, atau jika namanya \u201c\u201d atau \u201c\u201d<\/dd>\n<\/dl>\n<\/dd>\n<\/dl>\n<hr>\n<p><a name=\"setField(Object, String, Object)\"><!-- --><\/a><\/p>\n<h2>\nsetField<\/h2>\n<pre>kekosongan statis publik <b>setField<\/b>(Objek invokeObject, String fieldName, Nilai objek) melempar IllegalAccessException, NoSuchFieldException<\/pre>\n<dl>\n<dd>Menyimpan nilai &quot;value&quot; dalam nama field &quot;fieldName&quot; dari objek yang akan dieksekusi &quot;invokeObject&quot;.<\/p>\n<\/dd>\n<dd>\n<dl>\n<dt><b>Parameter:<\/b><\/dt>\n<dd><code>memanggilObjek<\/code> \u2013 Objek yang akan dieksekusi<\/dd>\n<dd><code>Nama bidang<\/code> \u2013 Nama bidang objek yang akan dieksekusi<\/dd>\n<dd><code>nilai<\/code> \u2013 Nilai yang akan ditetapkan\n<\/dd>\n<dt><b>pengecualian:<\/b>\n<\/dt>\n<dd><code>IlegalAccessException<\/code> \u2013 Bidang yang menjadi dasar objek tertentu (atau subkelas atau pelaksananya)<br \/>\n             bukan merupakan turunan dari kelas atau antarmuka yang dideklarasikannya, atau jika konversi pembukaan bungkusnya gagal\n<\/dd>\n<dd><code>Tidak Ada Pengecualian Bidang Tersebut<\/code> \u2013 Jika field dengan nama yang ditentukan tidak ditemukan<\/dd>\n<\/dl>\n<\/dd>\n<\/dl>\n<hr>\n<p><a name=\"getField(Object, String)\"><!-- --><\/a><\/p>\n<h2>\ndapatkanField<\/h2>\n<pre>objek statis publik <b>dapatkanField<\/b>(Objek invokeObject, String fieldName) memunculkan IllegalAccessException, NoSuchFieldException<\/pre>\n<dl>\n<dd>Mendapatkan nilai nama field &quot;fieldName&quot; dari objek yang akan dieksekusi &quot;invokeObject&quot;.<\/p>\n<\/dd>\n<dd>\n<dl>\n<dt><b>Parameter:<\/b><\/dt>\n<dd><code>memanggilObjek<\/code> \u2013 Objek yang akan dieksekusi<\/dd>\n<dd><code>Nama bidang<\/code> \u2013 Nama bidang objek yang akan dieksekusi\n<\/dd>\n<dt><b>Nilai pengembalian:<\/b><\/dt>\n<dd>nilai kembalian\n<\/dd>\n<dt><b>pengecualian:<\/b>\n<\/dt>\n<dd><code>IlegalAccessException<\/code> \u2013 Bidang yang menjadi dasar objek tertentu (atau subkelas atau pelaksananya)<br \/>\n             bukan merupakan turunan dari kelas atau antarmuka yang dideklarasikannya, atau jika konversi pembukaan bungkusnya gagal\n<\/dd>\n<dd><code>Tidak Ada Pengecualian Bidang Tersebut<\/code> \u2013 Jika field dengan nama yang ditentukan tidak ditemukan<\/dd>\n<\/dl>\n<\/dd>\n<\/dl>\n<hr>\n<p><a name=\"hasField(Object, String)\"><!-- --><\/a><\/p>\n<h2>\nhasField<\/h2>\n<pre>boolean statis publik <b>hasField<\/b>(Objek objek, String fieldName) memunculkan Pengecualian<\/pre>\n<dl>\n<dd>Memeriksa apakah objek &#039;objek&#039; mendeklarasikan nama bidang &#039;Namabidang&#039;.<\/p>\n<\/dd>\n<dd>\n<dl>\n<dt><b>Parameter:<\/b><\/dt>\n<dd><code>obyek<\/code> \u2013 Objek yang akan diperiksa<\/dd>\n<dd><code>Nama bidang<\/code> \u2013 Nama bidang yang akan diperiksa\n<\/dd>\n<dt><b>Nilai pengembalian:<\/b><\/dt>\n<dd>benar jika dinyatakan\n<\/dd>\n<dt><b>pengecualian:<\/b>\n<\/dt>\n<dd><code>Pengecualian<\/code><\/dd>\n<\/dl>\n<\/dd>\n<\/dl>\n<hr>\n<p><a name=\"getAllFields(Object)\"><!-- --><\/a><\/p>\n<h2>\ndapatkanSemua Bidang<\/h2>\n<pre>java.util.TreeSet statis publik <b>dapatkanSemua Bidang<\/b>(Objek objek) melempar Pengecualian<\/pre>\n<dl>\n<dd>\n<dl>\n<dt><b>Parameter:<\/b><\/dt>\n<dd><code>obyek<\/code> &#8211;\n<\/dd>\n<dt><b>Nilai pengembalian:<\/b><\/dt>\n<dd>\n<\/dd>\n<dt><b>pengecualian:<\/b>\n<\/dt>\n<dd><code>Pengecualian<\/code><\/dd>\n<\/dl>\n<\/dd>\n<\/dl>\n<hr>\n<p><a name=\"getShortClassName(Object)\"><!-- --><\/a><\/p>\n<h2>\ndapatkanShortClassName<\/h2>\n<pre>String statis publik <b>dapatkanShortClassName<\/b>(Objek objek)<\/pre>\n<dl>\n<dd>Mendapatkan nama kelas yang tidak memenuhi syarat dari suatu objek.<\/p>\n<\/dd>\n<dd>\n<dl>\n<dt><b>Parameter:<\/b><\/dt>\n<dd><code>obyek<\/code> &#8211;\n<\/dd>\n<dt><b>Nilai pengembalian:<\/b><\/dt>\n<dd><\/dd>\n<\/dl>\n<\/dd>\n<\/dl>\n<hr>\n<p><a name=\"getShortClassName(String)\"><!-- --><\/a><\/p>\n<h2>\ndapatkanShortClassName<\/h2>\n<pre>String statis publik <b>dapatkanShortClassName<\/b>(String nama kelas)<\/pre>\n<dl>\n<dd>Mendapatkan nama kelas dari nama yang sepenuhnya memenuhi syarat.<\/p>\n<\/dd>\n<dd>\n<dl>\n<dt><b>Parameter:<\/b><\/dt>\n<dd><code>nama kelas<\/code> &#8211;\n<\/dd>\n<dt><b>Nilai pengembalian:<\/b><\/dt>\n<dd><\/dd>\n<\/dl>\n<\/dd>\n<\/dl>\n<hr>\n<p><a name=\"getFieldName(String)\"><!-- --><\/a><\/p>\n<h2>\ndapatkan Nama Bidang<\/h2>\n<pre>String statis publik <b>dapatkan Nama Bidang<\/b>(Nama metode string)<\/pre>\n<dl>\n<dd>Ubah nama bidang dari nama metode. Harus sesuai dengan konvensi JavaBeans.<\/p>\n<\/dd>\n<dd>\n<dl>\n<dt><b>Parameter:<\/b><\/dt>\n<dd><code>nama metode<\/code> &#8211;\n<\/dd>\n<dt><b>Nilai pengembalian:<\/b><\/dt>\n<dd><\/dd>\n<\/dl>\n<\/dd>\n<\/dl>\n<hr>\n<p><a name=\"isClassExist(String)\"><!-- --><\/a><\/p>\n<h2>\nadalahClassExist<\/h2>\n<pre>boolean statis publik <b>adalahClassExist<\/b>(String nama kelas)<\/pre>\n<dl>\n<dd>Memverifikasi bahwa nama &quot;className&quot; yang sepenuhnya memenuhi syarat adalah nama kelas yang ada.<\/p>\n<\/dd>\n<dd>\n<dl>\n<dt><b>Parameter:<\/b><\/dt>\n<dd><code>nama kelas<\/code> &#8211;\n<\/dd>\n<dt><b>Nilai pengembalian:<\/b><\/dt>\n<dd><\/dd>\n<\/dl>\n<\/dd>\n<\/dl>\n<hr>\n<p><a name=\"getPropertyDescriptors(Object)\"><!-- --><\/a><\/p>\n<h2>\ngetPropertyDescriptors<\/h2>\n<pre>PropertyDescriptor statis publik[] <b>getPropertyDescriptors<\/b>(Objek objek) melempar IntrospectionException<\/pre>\n<dl>\n<dd>Mengembalikan PropertyDescriptor yang menyimpan informasi objek untuk &quot;objek&quot;.<\/p>\n<\/dd>\n<dd>\n<dl>\n<dt><b>Parameter:<\/b><\/dt>\n<dd><code>obyek<\/code> &#8211;\n<\/dd>\n<dt><b>Nilai pengembalian:<\/b><\/dt>\n<dd>\n<\/dd>\n<dt><b>pengecualian:<\/b>\n<\/dt>\n<dd><code>java.beans.IntrospectionException<\/code><\/dd>\n<\/dl>\n<\/dd>\n<\/dl>\n<h2 class=\"common_title\"><a name=\"5\">Kode sumber BeanUtil<\/a><\/h2>\n<p><textarea readonly=\"readonly\" style=\"font-size: 13px;height: 400px;\" class=\"src\" onclick=\"this.focus();this.select()\">import java.beans.BeanInfo;<br \/>\nimport java.beans.IntrospectionException;<br \/>\nimport java.beans.Introspector;<br \/>\nimport java.beans.PropertyDescriptor;<br \/>\nimport java.lang.reflect.Constructor;<br \/>\nimport java.lang.reflect.Field;<br \/>\nimport java.lang.reflect.InvocationTargetException;<br \/>\nimport java.lang.reflect.Method;<br \/>\nimport java.math.BigDecimal;<br \/>\nimport java.sql.Timestamp;<br \/>\nimport java.text.SimpleDateFormat;<br \/>\nimport java.util.Calendar;<br \/>\nimport java.util.Date;<br \/>\nimport java.util.HashMap;<br \/>\nimport java.util.Map;<br \/>\nimport java.util.StringTokenizer;<br \/>\nimport java.util.TreeSet;<\/p>\n<p>\/**<br \/>\n * Kelas utilitas yang memungkinkan Anda menggunakan API refleksi Java dengan mudah<br \/>\n *\/<br \/>\nkelas publik BeanUtil {<\/p>\n<p>    \/**   *\/<br \/>\n    String akhir statis pribadi GET = \u201cGET\u201d;<br \/>\n    \/**   *\/<br \/>\n    String akhir statis pribadi SET = \u201cSET\u201d;<\/p>\n<p>    \/\/ ----------------------------------------------- \u300eInstance baru\u300f<br \/>\n    \/**<br \/>\n     * Menghasilkan dan mengembalikan sebuah instance dari string &quot;className&quot;.<br \/>\n     * @param className nama kelas yang sepenuhnya memenuhi syarat<br \/>\n     * @return instance baru dari nama kelas yang sepenuhnya memenuhi syarat<br \/>\n     * @melempar Pengecualian<br \/>\n     *\/<br \/>\n    Obyek statis publik newInstance(String className) melempar Pengecualian {<br \/>\n        mencoba {<br \/>\n            return Kelas.forName(className).newInstance();<br \/>\n        } tangkapan (NoClassDefFoundError e) {<br \/>\n            System.err.println(\u201cNoClassDefFoundError : \u201d + Namakelas);<br \/>\n            melempar e;<br \/>\n        }<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Menghasilkan dan mengembalikan sebuah instance dari string &quot;className&quot;.<br \/>\n     * @param className nama kelas yang sepenuhnya memenuhi syarat<br \/>\n     * Argumen konstruktor @param argObj<br \/>\n     * @return instance baru dari nama kelas yang sepenuhnya memenuhi syarat<br \/>\n     * @melempar Pengecualian<br \/>\n     *\/<br \/>\n    Objek statis publik newInstance(String className, Objek[] argObj)<br \/>\n            melempar Pengecualian {<br \/>\n        Kelas[] argClass = Kelas baru[argObj.length];<br \/>\n        for (int i = 0; i &lt; argObj.length; i++) {<br \/>\n            argClass[i] = argObj[i].getClass();<br \/>\n        }<br \/>\n        Konstruktor c = Kelas.forName(className).getConstructor(argClass);<br \/>\n        kembalikan c.newInstance(argObj);<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Membuat dan mengembalikan instance dari kelas &#039;clazz&#039;.<br \/>\n     * @param kelas clazz<br \/>\n     * @return instance baru dari clazz<br \/>\n     * @melempar Pengecualian<br \/>\n     *\/<br \/>\n    Objek statis publik newInstance(Kelas clazz) melempar Pengecualian {<br \/>\n        kembalikan clazz.newInstance();<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Membuat dan mengembalikan instance dari kelas &#039;clazz&#039;.<br \/>\n     * @param kelas clazz<br \/>\n     * Argumen konstruktor @param argObj<br \/>\n     * @return instance baru dari clazz<br \/>\n     * @melempar Pengecualian<br \/>\n     *\/<br \/>\n    Objek statis publik newInstance(Kelas clazz, Objek[] argObj)<br \/>\n            melempar Pengecualian {<br \/>\n        Kelas[] argClass = Kelas baru[argObj.length];<br \/>\n        for (int i = 0; i &lt; argObj.length; i++) {<br \/>\n            argClass[i] = argObj[i].getClass();<br \/>\n        }<br \/>\n        Konstruktor c = clazz.getConstructor(argClass);<br \/>\n        kembalikan c.newInstance(argObj);<br \/>\n    }<\/p>\n<p>    \/\/ ---------------------&quot;Metode&quot;<br \/>\n    \/**<br \/>\n     * Metode penyetel bidang \u201cfieldName\u201d objek \u201cinvokeObject\u201d<br \/>\n     * Panggil, simpan nilai &#039;nilai&#039;.<br \/>\n     * &lt;br&gt;<br \/>\n     * Jika tidak ada metode penyetel, tetapkan nilainya langsung ke kolom.<br \/>\n     * Namun, dalam kasus ini, pengubah akses properti target harus bersifat publik.<br \/>\n     * @param invokeObject Objek yang akan dieksekusi<br \/>\n     * @param fieldName Nama properti dari objek yang akan dieksekusi<br \/>\n     * @param nilai nilai yang akan ditetapkan<br \/>\n     * @throws Exception Pengecualian berikut terjadi.<br \/>\n     * @throws InvocationTargetException jika metode yang mendasari memunculkan pengecualian<br \/>\n     * @throws IllegalAccessException Jika objek Metode ini adalah Java<br \/>\n     * Ketika kontrol akses bahasa diterapkan dan metode yang mendasarinya tidak dapat diakses<br \/>\n     * @throws NoSuchMethodException jika metode dengan nama yang ditentukan tidak ditemukan<br \/>\n     *\/<br \/>\n    public static void setProperty(Objek invokeObject, String fieldName,<br \/>\n            Nilai objek) memunculkan Pengecualian {<br \/>\n        mencoba {<br \/>\n            Metode metode = metode pencarian(invokeObject, fieldName, SET);<br \/>\n            Kelas[] paramClasses = metode.getParameterTypes();<br \/>\n            Objek[] valueArray = null;<br \/>\n            if (paramClasses[0].isInstance(nilai)) {<br \/>\n                \/\/Jangan melakukan konversi jika objek yang akan disetel adalah subkelas dari kelas argumen.<br \/>\n                valueArray = Objek baru[] { nilai };<br \/>\n            } kalau tidak {<br \/>\n                valueArray = Objek baru[] { convObject(nilai, paramClasses[0]<br \/>\n                        .getName()) };<br \/>\n            }<br \/>\n            metode.invoke(invokeObject, valueArray);<br \/>\n        } tangkapan (NoSuchMethodException e) {<br \/>\n            mencoba {<br \/>\n                \/\/ Jika tidak ada metode penyetel, setel langsung ke kolom.<br \/>\n                setField(invokeObject, fieldName, nilai);<br \/>\n            } tangkapan (NoSuchFieldException fe) {<br \/>\n                String errorMes = \u201c\\nKelas\u201d + getShortClassName(invokeObject)<br \/>\n                        + \u201cadalah\u201d + \u201cuntuk bidang \u201c\u201d + Nama bidang + \u201c\u201d\\n\u201d<br \/>\n                        + \u201cTidak ada metode penyetel yang dapat diakses, dan.\u201d<br \/>\n                        + \u201cBidang \u201c\u201d + Nama bidang<br \/>\n                        + \u201c\u201d juga tidak bersifat publik. \u201d + \u201c\u201d;<br \/>\n                melempar IllegalAccessException baru(errorMes);<br \/>\n            }<br \/>\n        }<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Metode pengambil bidang fieldNama objek invokeObject<br \/>\n     * Dapatkan nilai panggilan. &lt;br&gt;<br \/>\n     * Jika tidak ada metode pengambil, nilai akan diperoleh langsung dari lapangan.<br \/>\n     * Namun, dalam kasus ini, pengubah akses properti target harus bersifat publik.<br \/>\n     * @param invokeObject Objek yang akan dieksekusi<br \/>\n     * @param fieldName Nama properti dari objek yang akan dieksekusi<br \/>\n     * @return mengembalikan nilai metode pengambil<br \/>\n     * @throws Exception Pengecualian berikut terjadi.<br \/>\n     * @throws InvocationTargetException jika metode yang mendasari memunculkan pengecualian<br \/>\n     * @throws IllegalAccessException Jika objek Metode ini adalah Java<br \/>\n     * Ketika kontrol akses bahasa diterapkan dan metode yang mendasarinya tidak dapat diakses<br \/>\n     * @throws NoSuchFieldException jika bidang dengan nama yang ditentukan tidak ditemukan<br \/>\n     *\/<br \/>\n    getProperty Objek statis publik (Objek invokeObject, String fieldName)<br \/>\n            melempar Pengecualian {<br \/>\n        mencoba {<br \/>\n            Metode metode = metode pencarian(invokeObject, fieldName, GET);<br \/>\n            metode pengembalian.invoke(invokeObject, null);<br \/>\n        } tangkapan (NoSuchMethodException e) {<br \/>\n            kembali getField(invokeObject,fieldName);<br \/>\n        }<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Menjalankan metode &quot;callMethod&quot; dari objek &quot;invokeObject&quot;.<br \/>\n     * Jika ada nilai kembalian, maka dapat diperoleh sebagai tipe Objek.<br \/>\n     * @param invokeObject Objek yang akan dieksekusi<br \/>\n     * @param callMethod Nama metode yang akan dieksekusi<br \/>\n     * @param argObjects Jika ada argumen, teruskan sebagai array objek.<br \/>\n     * Berikan null jika tidak ada argumen.<br \/>\n     * @return Mengembalikan nilai dari mengeksekusi &quot;callMethod&quot;<br \/>\n     * @throws InvocationTargetException jika metode yang mendasari memunculkan pengecualian<br \/>\n     * @throws IllegalAccessException Jika objek Metode ini adalah Java<br \/>\n     * Ketika kontrol akses bahasa diterapkan dan metode yang mendasarinya tidak dapat diakses<br \/>\n     * @throws NoSuchMethodException jika metode dengan nama yang ditentukan tidak ditemukan<br \/>\n     *\/<br \/>\n    pemanggilan Objek statis publik (Objek invokeObject, String callMethod,<br \/>\n            Object[] argObjects) menampilkan InvocationTargetException,<br \/>\n            IllegalAccessException, NoSuchMethodException {<br \/>\n        Metode metode = findMethod(invokeObject, callMethod, argObjects);<br \/>\n        metode pengembalian.invoke(invokeObject, argObjects);<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Cari metode &#039;callMethod&#039; dari objek &#039;invokeObject&#039;.<br \/>\n     * @param invokeObject Objek yang akan dieksekusi<br \/>\n     * @param callMethod Nama metode objek yang akan dieksekusi<br \/>\n     * @param argObjects Jika ada argumen, teruskan sebagai array objek.<br \/>\n     * Berikan null jika tidak ada argumen.<br \/>\n     * @return Objek Metode yang cocok dengan kondisi argumen yang ditentukan<br \/>\n     * @throws NoSuchMethodException Jika tidak ditemukan metode yang cocok,<br \/>\n     * Atau jika namanya \u201c &quot; atau &quot; &quot;dalam kasus<br \/>\n     *\/<br \/>\n    Metode statis publik findMethod(Objek invokeObject, String callMethod,<br \/>\n            Objek[] argObjects) melempar NoSuchMethodException {<br \/>\n        Kelas[] paramKelas = null;<br \/>\n        Metode[] metode = invokeObject.getClass().getMethods();<br \/>\n        atas: for (int i = 0; i &lt; metode.panjang; i++) {<br \/>\n            if (metode[i].getName().equals(callMethod)) {<br \/>\n                jika (argObjects == null<br \/>\n                        &amp;&amp; metode[i].getParameterTypes().panjang == 0) {<br \/>\n                    metode pengembalian[i];<br \/>\n                }<br \/>\n                jika (argObjects == null) {<br \/>\n                    melanjutkan;<br \/>\n                }<br \/>\n                paramClasses = metode[i].getParameterTypes();<br \/>\n                if (paramClasses.length == argObjects.length) {<br \/>\n                    \/\/ Validasi semua tipe daftar parameter dan tipe argumen<br \/>\n                    for (int j = 0; j &lt; paramClasses.length; j++) {<br \/>\n                        Kelas paramClass = paramClasses[j];<br \/>\n                        Objek argObj = argObjects[j];<br \/>\n                        \/\/ Jika tipe argumennya primitif, maka objek argumennya<br \/>\n                        \/\/ bukan null dan primitif<br \/>\n                        \/\/Jika itu adalah subkelas Number, tidak apa-apa.<br \/>\n                        jika (argObj == nol) {<br \/>\n                            melanjutkan;<br \/>\n                        }<br \/>\n                        jika (paramClass.isPrimitive()<br \/>\n                                &amp;&amp; (argObj contoh Nomor || argObj<br \/>\n                                        .getClass().isPrimitive())) {<br \/>\n                            melanjutkan;<br \/>\n                        }<br \/>\n                        if (!paramClass.isInstance(argObj)) {<br \/>\n                            \/\/ Lanjutkan ke metode berikutnya ketika tipenya tidak kompatibel dengan konversi implisit<br \/>\n                            lanjutkan ke atas;<br \/>\n                        }<br \/>\n                    }<br \/>\n                    metode pengembalian[i];<br \/>\n                }<br \/>\n            }<br \/>\n        }<br \/>\n        String paramLength = (paramClasses != null) ?Integer<br \/>\n                .toString(paramClasses.length) : \u201c\u201d;<br \/>\n        String errorMes = getShortClassName(invokeObject) + \u201cmetode\u201d<br \/>\n                + callMethod + \u201cTidak ada.\u201d + \u201c[ paramClasses.length ] = \u201d<br \/>\n                + paramLength + \u201c,[ argObjects.length ] = \u201d + argObjects.length<br \/>\n                + &#8220;&#8221;;<br \/>\n        melempar NoSuchMethodException baru(errorMes);<br \/>\n    }<\/p>\n<p>    \/\/ ----------------------&quot;Bidang&quot;<br \/>\n    \/**<br \/>\n     * Nilai untuk nama field &quot;fieldName&quot; dari objek &quot;invokeObject&quot; yang akan dieksekusi<br \/>\n     * Menyimpan &quot;nilai&quot;.<br \/>\n     * @param invokeObject Objek yang akan dieksekusi<br \/>\n     * @param fieldName Nama field objek yang akan dieksekusi<br \/>\n     * @param nilai nilai yang akan ditetapkan<br \/>\n     * @throws IllegalAccessException Jika objek yang ditentukan adalah<br \/>\n     * bidang (atau subkelas atau pelaksananya)<br \/>\n     * Jika ini bukan turunan dari kelas atau antarmuka, deklarasikan<br \/>\n     * atau jika konversi pembukaan bungkus gagal<br \/>\n     * @throws NoSuchFieldException jika bidang dengan nama yang ditentukan tidak ditemukan<br \/>\n     *\/<br \/>\n    public static void setField(Objek invokeObject, String fieldName,<br \/>\n            Nilai objek) memunculkan IllegalAccessException, NoSuchFieldException {<br \/>\n        Bidang bidang = searchField(invokeObject, fieldName);<br \/>\n        String className = bidang.getType().getName();<br \/>\n        Objek convObj = null;<br \/>\n        if (bidang.getType().isInstance(nilai)) {<br \/>\n            konvObj = nilai;<br \/>\n        } kalau tidak {<br \/>\n            convObj = convObject(nilai, nama kelas);<br \/>\n        }<br \/>\n        bidang.set(invokeObject, convObj);<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Tetapkan nilai nama bidang &quot;fieldName&quot; dari objek eksekusi &quot;invokeObject&quot; menjadi<br \/>\n     * Mendapatkan.<br \/>\n     * @param invokeObject Objek yang akan dieksekusi<br \/>\n     * @param fieldName Nama field objek yang akan dieksekusi<br \/>\n     * @kembalikan nilai pengembalian<br \/>\n     * @throws IllegalAccessException Jika objek yang ditentukan adalah<br \/>\n     * bidang (atau subkelas atau pelaksananya)<br \/>\n     * Jika ini bukan turunan dari kelas atau antarmuka, deklarasikan<br \/>\n     * atau jika konversi pembukaan bungkus gagal<br \/>\n     * @throws NoSuchFieldException jika bidang dengan nama yang ditentukan tidak ditemukan<br \/>\n     *\/<br \/>\n    getField Objek statis publik (Objek invokeObject, String fieldName)<br \/>\n            melempar IllegalAccessException, NoSuchFieldException {<br \/>\n        Bidang bidang = searchField(invokeObject, fieldName);<br \/>\n        return field.get(invokeObject);<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Periksa apakah objek &quot;objek&quot; mendeklarasikan nama field &quot;fieldName&quot;<br \/>\n     * mengonfirmasi.<br \/>\n     * @param objek Objek yang akan diperiksa<br \/>\n     * @param fieldName Nama bidang yang akan diperiksa<br \/>\n     * @return true jika dideklarasikan<br \/>\n     * @melempar Pengecualian<br \/>\n     *\/<br \/>\n    hasField boolean statis publik (Objek objek, Nama bidang String)<br \/>\n            melempar Pengecualian {<br \/>\n        PropertyDescriptor[] props = getPropertyDescriptors(objek);<br \/>\n        for (int i = 0; i &lt; props.panjang; i++) {<br \/>\n            String _fieldName = alat peraga[i].getName();<br \/>\n            if (namabidang.sama dengan(_namabidang)) {<br \/>\n                kembali benar;<br \/>\n            }<br \/>\n        }<br \/>\n        kembali salah;<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     *<br \/>\n     * @param objek<br \/>\n     * @kembali<br \/>\n     * @melempar Pengecualian<br \/>\n     *\/<br \/>\n    public static TreeSet getAllFields(Objek objek) melempar Pengecualian {<\/p>\n<p>        TreeSet fieldSet = Set Pohon baru();<br \/>\n        \/\/ Dapatkan nama properti dari metode<br \/>\n        PropertyDescriptor[] props = getPropertyDescriptors(objek);<br \/>\n        for (int i = 0; i &lt; props.panjang; i++) {<br \/>\n            String fieldName = alat peraga[i].getName();<br \/>\n            fieldSet.add(Namabidang);<\/p>\n<p>        }<\/p>\n<p>        \/\/ Dapatkan nama properti dari kolom<br \/>\n        Bidang[] bidang = objek.getClass().getFields();<br \/>\n        for (int i = 0; i &lt; bidang.panjang; i++) {<br \/>\n            String fieldName = bidang[i].getName();<br \/>\n            if (!fieldSet.contains(fieldName)) {<br \/>\n                fieldSet.add(Namabidang);<br \/>\n            }<br \/>\n        }<br \/>\n        kembalikan fieldSet;<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     *<br \/>\n     * @param invokeObject Objek yang akan dieksekusi<br \/>\n     * @param fieldName Nama field objek yang akan dieksekusi<br \/>\n     * @return Mengajukan objek yang cocok dengan kondisi argumen yang ditentukan<br \/>\n     * @throws NoSuchFieldException jika bidang dengan nama yang ditentukan tidak ditemukan<br \/>\n     *\/<br \/>\n    Bidang pencarian Bidang statis pribadi (Objek invokeObject, Nama bidang String)<br \/>\n            melempar NoSuchFieldException {<br \/>\n        mencoba {<br \/>\n            kembali invokeObject.getClass().getField(fieldName);<br \/>\n        } tangkapan (NoSuchFieldException e) {<br \/>\n            \/\/ Cakupan ini diperoleh dari nama kolom tabel<br \/>\n            fieldName = checkFieldName(namafield);<br \/>\n            Bidang[] bidang = invokeObject.getClass().getFields();<br \/>\n            for (int i = 0; i &lt; bidang.panjang; i++) {<br \/>\n                if (bidang[i].getName().equalsIgnoreCase(fieldName)) {<br \/>\n                    mengembalikan bidang[i];<br \/>\n                }<br \/>\n            }<br \/>\n            lempar NoSuchFieldException(fieldName);<br \/>\n        }<br \/>\n    }<\/p>\n<p>    \/\/ ----------------------&quot; yang lain &quot;<\/p>\n<p>    \/**<br \/>\n     * Dapatkan nama kelas yang tidak memenuhi syarat dari suatu objek.<br \/>\n     * @param objek<br \/>\n     * @kembali<br \/>\n     *\/<br \/>\n    String statis publik getShortClassName(Objek objek) {<br \/>\n        jika (objek == null) {<br \/>\n            kembalikan \u201cnol\u201d;<br \/>\n        }<br \/>\n        Nama string = objek.getClass().getName();<br \/>\n        kembalikan getShortClassName(nama);<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Dapatkan nama kelas dari nama yang sepenuhnya memenuhi syarat.<br \/>\n     * @param namakelas<br \/>\n     * @kembali<br \/>\n     *\/<br \/>\n    String statis publik getShortClassName(String className) {<br \/>\n        int indeks = namakelas.lastIndexOf(\u201c.\u201d);<br \/>\n        return className.substring(indeks + 1);<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Ubah nama field dari nama metode. Sesuai dengan konvensi JavaBeans<br \/>\n     * diperlukan.<br \/>\n     * @param nama metode<br \/>\n     * @kembali<br \/>\n     *\/<br \/>\n    String statis publik getFieldName(String methodName) {<br \/>\n        String fieldNama = null;<br \/>\n        if (methodName.startsWith(\u201cadalah\u201d)) {<br \/>\n            fieldName = nama metode.substring(2);<br \/>\n        } kalau tidak {<br \/>\n            fieldName = nama metode.substring(3);<br \/>\n        }<br \/>\n        fieldName = convString(fieldName, 0, \u201cL\u201d);<br \/>\n        kembalikan nama bidang;<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Verifikasi bahwa nama &quot;className&quot; yang sepenuhnya memenuhi syarat adalah nama kelas yang sudah ada.<br \/>\n     * @param namakelas<br \/>\n     * @kembali<br \/>\n     *\/<br \/>\n    boolean statis publik isClassExist(String className) {<br \/>\n        mencoba {<br \/>\n            Kelas.untukNama(Namakelas);<br \/>\n            kembali benar;<br \/>\n        } tangkapan (Pengecualian e) {<br \/>\n            kembali salah;<br \/>\n        }<br \/>\n    }<\/p>\n<p>    peta statis akhir pribadi beanInfoCache = new HashMap();<\/p>\n<p>    \/**<br \/>\n     * Mengembalikan PropertyDescriptor yang menyimpan informasi objek untuk &quot;objek&quot;.<br \/>\n     * @param objek<br \/>\n     * @kembali<br \/>\n     * @melempar IntrospectionException<br \/>\n     *\/<br \/>\n    PropertyDescriptor statis publik[] getPropertyDescriptors(Objek objek)<br \/>\n            melempar IntrospectionException {<\/p>\n<p>        BeanInfo beanInfo = (BeanInfo) beanInfoCache.get(object.getClass());<br \/>\n        jika (kacangInfo == null) {<br \/>\n            beanInfo = Introspektor.getBeanInfo(object.getClass());<br \/>\n            beanInfoCache.put(objek.getClass(), beanInfo);<br \/>\n        }<br \/>\n        \/\/ BeanInfo beanInfo = Introspektor.getBeanInfo(objek.getClass());<br \/>\n        kembalikan beanInfo.getPropertyDescriptors();<br \/>\n    }<\/p>\n<p>    \/\/ &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n    \/\/ ---------------- \u201cMetode pribadi di bawah\u201d<br \/>\n    \/\/ &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n    \/**<br \/>\n     * Cari metode pengakses untuk argumen fieldName berdasarkan PropertyDescriptor.<br \/>\n     * @param invokeObject Objek yang akan dieksekusi<br \/>\n     * @param fieldName nama bidang<br \/>\n     * @param ketik Metode pengambil \u21d2 Metode pengambil GET \u21d2 SET<br \/>\n     * @return Objek Metode yang cocok dengan kondisi argumen yang ditentukan<br \/>\n     * @throws NoSuchMethodException Jika tidak ditemukan metode yang cocok,<br \/>\n     * Atau jika namanya \u201c &quot; atau &quot; \u201d<br \/>\n     * dalam kasus<br \/>\n     * @melempar IntrospectionException<br \/>\n     *\/<br \/>\n    Metode pencarian statis pribadi (Objek invokeObject, String fieldName,<br \/>\n            Tipe string) menampilkan NoSuchMethodException, IntrospectionException {<br \/>\n        Metode metode = null;<br \/>\n        fieldName = checkFieldName(namafield);<br \/>\n        PropertyDescriptor[] props = getPropertyDescriptors(invokeObject);<br \/>\n        for (int i = 0; i &lt; props.panjang; i++) {<br \/>\n            String nama = alat peraga[i].getName();<br \/>\n            if (!name.equalsIgnoreCase(fieldName)) {<br \/>\n                melanjutkan;<br \/>\n            }<br \/>\n            if (ketik.sama dengan(GET)) {<br \/>\n                metode = alat peraga[i].getReadMethod();<br \/>\n            } kalau tidak {<br \/>\n                metode = alat peraga[i].getWriteMethod();<br \/>\n            }<br \/>\n            jika (metode == nol) {<br \/>\n                melanjutkan;<br \/>\n            }<br \/>\n            metode pengembalian;<br \/>\n        }<\/p>\n<p>        \/\/ Jika metodenya tidak ada.<br \/>\n        throw new NoSuchMethodException(&quot;Kelas tidak memiliki metode.&quot;<br \/>\n                + \u201c(Tidak peka huruf besar-kecil.): \u201d + type.toLowerCase()<br \/>\n                + convString(Namabidang, 0, \u201cU\u201d) + \u201c()\u201d);<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Memeriksa apakah argumen fieldName adalah nama kolom; jika itu adalah nama kolom,<br \/>\n     * Konversi kembali.<br \/>\n     *<br \/>\n     * MAIL_ADDRESS \u21d2 MAILADDRESS \u2193 alamat surat = alamat surat<br \/>\n     * @param fieldName nama kolom atau nama kolom<br \/>\n     * @kembalikan nama bidang<br \/>\n     *\/<br \/>\n    String statis pribadi checkFieldName(String fieldName) {<br \/>\n        int indeks = namabidang.indexOf(\u201c_\u201d);<br \/>\n        sementara (benar) {<br \/>\n            jika (indeks == -1) {<br \/>\n                kembalikan nama bidang;<br \/>\n            }<br \/>\n            StringBuffer convclumn = new StringBuffer(fieldName);<br \/>\n            convclumn.deleteCharAt(indeks);<br \/>\n            fieldName = convclumn.toString();<br \/>\n            indeks = namabidang.indexOf(\u201c_\u201d);<br \/>\n        }<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Mengubah objek yang akan dikonversi, objek, menjadi tipe convClassName.<br \/>\n     *<br \/>\n     * @param objek Objek yang akan dikonversi<br \/>\n     * @param convClassName string kelas tipe yang akan dikonversi<br \/>\n     * @kembalikan objek yang dikonversi<br \/>\n     *\/<br \/>\n    Objek statis pribadi convObject(Objek objek, String convClassName) {<br \/>\n        jika (objek == null) {<br \/>\n            \/\/ Mengembalikan null saat mengonversi ke tipe primitif akan menghasilkan kesalahan.<br \/>\n            \/\/ Jadikan itu pembungkus untuk 0.<br \/>\n            if (convClassName.equals(\u201cint\u201d)) {<br \/>\n                kembalikan Integer baru (0);<br \/>\n            } else if (convClassName.equals(\u201cpanjang\u201d)) {<br \/>\n                kembalikan Panjang baru (0);<br \/>\n            } kalau tidak {<br \/>\n                kembalikan nol;<br \/>\n            }<br \/>\n        }<br \/>\n        if (objek.getClass().getName().equals(convClassName)) {<br \/>\n            mengembalikan objek;<br \/>\n        }<\/p>\n<p>        \/\/ ------------- \u300eobjek instance dari String\u300f<br \/>\n        if (objek instanceof String) {<br \/>\n            if (convClassName.equals(\u201cjava.lang.String\u201d)) {<br \/>\n                mengembalikan objek;<br \/>\n            } else if (convClassName.equals(\u201cjava.lang.Long\u201d)<br \/>\n                    || convClassName.equals(\u201cpanjang\u201d)) {<br \/>\n                String str = (String) objek;<br \/>\n                jika (ada(str)) {<br \/>\n                    \/\/ Akan buruk jika Anda tidak mengonversinya ke BigDecimal satu kali<br \/>\n                    \/\/ 1000.00000<br \/>\n                    BigDecimal besar = BigDecimal baru(str);<br \/>\n                    kembalikan Long baru(big.longValue());<br \/>\n                } kalau tidak {<br \/>\n                    \/\/ Jika str adalah literal shell, atur nilai awalnya menjadi \u201c0\u201d<br \/>\n                    kembalikan Panjang baru (0);<br \/>\n                }<br \/>\n            } else if (convClassName.equals(\u201cjava.sql.Date\u201d)) {<br \/>\n                kembali keSqlDate((String) objek);<br \/>\n            } else if (convClassName.equals(\u201cjava.sql.Stempel Waktu\u201d)) {<br \/>\n                Tanggal tanggal = toSqlDate((String) objek);<br \/>\n                kembalikan Stempel Waktu baru(tanggal.getTime());<br \/>\n            } else if (convClassName.equals(\u201cjava.lang.Integer\u201d)<br \/>\n                    || convClassName.equals(\u201cint\u201d)) {<br \/>\n                \/\/ Jika str adalah literal shell, atur nilai awalnya menjadi \u201c0\u201d<br \/>\n                String str = (String) objek;<br \/>\n                jika (ada(str)) {<br \/>\n                    BigDecimal besar = BigDecimal baru(str);<br \/>\n                    kembalikan Integer baru(besar.intValue());<br \/>\n                } kalau tidak {<br \/>\n                    kembalikan Integer baru (0);<br \/>\n                }<br \/>\n            } else if (convClassName.equals(\u201cboolean\u201d)) {<br \/>\n                return Boolean.valueOf(objek.toString());<br \/>\n            } else if (convClassName.equals(\u201cjava.math.BigDecimal\u201d)) {<br \/>\n                String temp = ((String) objek).trim();<br \/>\n                \/\/ Jika temp.length() == 0, aman untuk menyetelnya ke null, bukan 0.<br \/>\n                if (temp.panjang() == 0) {<br \/>\n                    kembalikan nol;<br \/>\n                } kalau tidak {<br \/>\n                    kembalikan BigDecimal(temp) baru;<br \/>\n                }<br \/>\n            }<br \/>\n            throwNoSupprt(objek, convClassName);<br \/>\n        }<\/p>\n<p>        \/\/ \u2014------------------------------------------contoh objek java.sql.Date\u201d<br \/>\n        else if (objek instanceof java.sql.Date) {<\/p>\n<p>            if (convClassName.equals(\u201cjava.lang.String\u201d)) {<br \/>\n                return toStringDate((java.sql.Date) objek, \u201cyyyy\/MM\/dd\u201d);<br \/>\n            } else if (convClassName.equals(\u201cjava.sql.Date\u201d)) {<br \/>\n                mengembalikan objek;<br \/>\n            } else if (convClassName.equals(\u201cjava.sql.Stempel Waktu\u201d)) {<br \/>\n                kembalikan Stempel Waktu baru(((Tanggal) objek).getTime());<br \/>\n            }<br \/>\n            throwNoSupprt(objek, convClassName);<br \/>\n        }<\/p>\n<p>        \/\/ \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014- \u300econtoh objek Stempel Waktu\u300f<br \/>\n        else if (objek instanceof Timestamp) {<br \/>\n            lama = ((Stempel Waktu) objek).getTime();<br \/>\n            if (convClassName.equals(\u201cjava.lang.String\u201d)) {<br \/>\n                return toStringDate(waktu, \u201cyyyy\/MM\/dd HH:mm:ss\u201d);<br \/>\n            } else if (convClassName.equals(\u201cjava.sql.Date\u201d)) {<br \/>\n                kembalikan java.sql.Date(waktu);<br \/>\n            } else if (convClassName.equals(\u201cjava.sql.Stempel Waktu\u201d)) {<br \/>\n                mengembalikan objek;<br \/>\n            }<br \/>\n            throwNoSupprt(objek, convClassName);<br \/>\n        }<\/p>\n<p>        \/\/ ------------- \u300eobjek instance dari Integer\u300f<br \/>\n        else if (objek instance dari Integer) {<br \/>\n            if (convClassName.equals(\u201cjava.lang.Integer\u201d)<br \/>\n                    || convClassName.equals(\u201cint\u201d)) {<br \/>\n                mengembalikan objek;<br \/>\n            } else if (convClassName.equals(\u201cjava.lang.String\u201d)) {<br \/>\n                mengembalikan objek.toString();<br \/>\n            } else if (convClassName.equals(\u201cjava.lang.Long\u201d)<br \/>\n                    || convClassName.equals(\u201cpanjang\u201d)) {<br \/>\n                mengembalikan objek Long(((Integer) baru).longValue());<br \/>\n            } else if (convClassName.equals(\u201cjava.math.BigDecimal\u201d)) {<br \/>\n                mengembalikan objek BigDecimal(((Integer) baru).intValue());<br \/>\n            }<br \/>\n            throwNoSupprt(objek, convClassName);<br \/>\n        }<\/p>\n<p>        \/\/ \u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014 \u300eobjek instance dari Long\u300f<br \/>\n        else if (contoh objek Panjang) {<br \/>\n            if (convClassName.equals(\u201cjava.lang.Long\u201d)<br \/>\n                    || convClassName.equals(\u201cpanjang\u201d)) {<br \/>\n                mengembalikan objek;<br \/>\n            } else if (convClassName.equals(\u201cjava.lang.String\u201d)) {<br \/>\n                mengembalikan objek.toString();<br \/>\n            } else if (convClassName.equals(\u201cjava.lang.Integer\u201d)<br \/>\n                    || convClassName.equals(\u201cint\u201d)) {<br \/>\n                mengembalikan Integer baru(((Panjang) objek).intValue());<br \/>\n            } else if (convClassName.equals(\u201cjava.math.BigDecimal\u201d)) {<br \/>\n                kembalikan BigDecimal(((Panjang) objek).longValue());<br \/>\n            }<br \/>\n            throwNoSupprt(objek, convClassName);<br \/>\n        }<\/p>\n<p>        \/\/ ------------- \u300eobjek instance dari Double\u300f<br \/>\n        else if (objek instanceof Double) {<br \/>\n            if (convClassName.equals(\u201cjava.lang.String\u201d)) {<br \/>\n                \/\/ NOMOR KOLOM(8,0)<br \/>\n                \/\/ windows Oracle &gt; Desimal Besar<br \/>\n                \/\/ Oracle UNIX &gt; Ganda<br \/>\n                BigDecimal besar = BigDecimal baru(((Ganda) objek).doubleValue());<br \/>\n                int skala = besar.skala();<br \/>\n                jika (skala == 0) {<br \/>\n                    kembalikan besar.toString();<br \/>\n                } kalau tidak {<br \/>\n                    \/\/ Tidak didukung jika pembulatan diperlukan.<br \/>\n                    throwNoSupprt(objek, convClassName);<br \/>\n                }<br \/>\n            }<br \/>\n            if (convClassName.equals(\u201cjava.lang.Integer\u201d)<br \/>\n                    || convClassName.equals(\u201cint\u201d)) {<br \/>\n                mengembalikan Integer baru(((Double) objek).intValue());<br \/>\n            } else if (convClassName.equals(\u201cjava.lang.Long\u201d)<br \/>\n                    || convClassName.equals(\u201cpanjang\u201d)) {<br \/>\n                mengembalikan objek Long(((Double) baru).longValue());<br \/>\n            } else if (convClassName.equals(\u201cjava.math.BigDecimal\u201d)) {<br \/>\n                kembalikan BigDecimal(((Double) objek).doubleValue());<br \/>\n            }<br \/>\n            throwNoSupprt(objek, convClassName);<br \/>\n        }<\/p>\n<p>        \/\/ --------------------------- \u201ccontoh objek dari BigDecimal \u201d<br \/>\n        else if (objek instance dari BigDecimal) {<br \/>\n            if (convClassName.equals(\u201cjava.lang.String\u201d)) {<br \/>\n                mengembalikan objek.toString();<br \/>\n            } else if (convClassName.equals(\u201cjava.lang.Long\u201d)<br \/>\n                    || convClassName.equals(\u201cpanjang\u201d)) {<br \/>\n                mengembalikan objek Long(((BigDecimal) baru).longValue());<br \/>\n            } else if (convClassName.equals(\u201cjava.lang.Integer\u201d)<br \/>\n                    || convClassName.equals(\u201cint\u201d)) {<br \/>\n                mengembalikan objek Integer(((BigDecimal) baru).intValue());<br \/>\n            }<br \/>\n            throwNoSupprt(objek, convClassName);<br \/>\n        }<\/p>\n<p>        \/\/ ------------- \u300eobjek instance dari byte[]\u300f<br \/>\n        else if (objek instanceof byte[]) {<br \/>\n            if (convClassName.equals(\u201cjava.sql.Blob\u201d)) {<br \/>\n                mengembalikan objek;<br \/>\n            }<br \/>\n            throwNoSupprt(objek, convClassName);<br \/>\n        }<\/p>\n<p>        \/\/ --------------------------------------------------- \u201cobjeknya adalah Boolean\u201d<br \/>\n        else if (contoh objek Boolean) {<br \/>\n            if (convClassName.equals(\u201cboolean\u201d)) {<br \/>\n                mengembalikan objek;<br \/>\n            }<br \/>\n            throwNoSupprt(objek, convClassName);<br \/>\n        }<\/p>\n<p>        \/\/ ---------------\u300eobjeknya boolean[]\u300f<br \/>\n        else if (objek instanceof boolean[]) {<br \/>\n            if (convClassName.equals(\u201cjava.lang.String\u201d)) {<br \/>\n                boolean[] bs = (boolean[]) objek;<br \/>\n                Penggemar StringBuffer = StringBuffer baru(\u201c[\u201c);<br \/>\n                for (int i = 0; i &lt; bs.panjang; i++) {<br \/>\n                    buff.append(bs[i] + \u201c,\u201d);<br \/>\n                }<br \/>\n                buff.deleteCharAt(buff.panjang() \u2013 1);<br \/>\n                buff.append(\u201c]\u201d);<br \/>\n                kembalikan buff.toString();<br \/>\n            }<br \/>\n            throwNoSupprt(objek, convClassName);<br \/>\n        }<br \/>\n        throwNoSupprt(objek, convClassName);<br \/>\n        kembalikan nol;<\/p>\n<p>    }<\/p>\n<p>    \/**<br \/>\n     *Melempar jika konversi tidak didukung.<br \/>\n     *<br \/>\n     * @param objek Objek yang akan dikonversi<br \/>\n     * @param convClassName Ketik untuk mengonversi<br \/>\n     *\/<br \/>\n    private static void throwNoSupprt(Objek objek, String convClassName) {<br \/>\n        String className = (objek != null) ?objek.getClass().getName()<br \/>\n                : \u201cbatal\u201d;<br \/>\n        String errorMess = \u201c\\nJenis pemrosesan konversi untuk Objek ini belum didukung.\\n\u201d<br \/>\n                + \u201d [ Objek ] = \u201d + objek + \u201c,[ Jenis objek ] = \u201d + Nama kelas<br \/>\n                + \u201c,[ convertClass ] = \u201d + convClassName + \u201c\u201d;<br \/>\n        lempar UnsupportedOperationException(errorMess);<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Mengonversi karakter pada posisi [indeks] string [str] menjadi huruf besar atau kecil.<br \/>\n     * &lt;p&gt;<br \/>\n     * @param str String yang akan dievaluasi<br \/>\n     * @param indeks Posisi yang ditentukan<br \/>\n     * @param toCase Ubah ke huruf besar \u21d2 U | u Ubah ke huruf kecil \u21d2 L | l<br \/>\n     * @return String setelah konversi<br \/>\n     *\/<br \/>\n    konvString String statis pribadi(String str, int indeks, String toCase) {<br \/>\n        if (str == null || str.trim().length() == 0) {<br \/>\n            kembalikan str;<br \/>\n        } kalau tidak {<br \/>\n            String temp = str.substring(indeks, indeks + 1);<br \/>\n            if (toCase.equalsIgnoreCase(\u201cu\u201d)) {<br \/>\n                temp = temp.toUpperCase();<br \/>\n            } kalau tidak {<br \/>\n                temp = temp.toLowerCase();<br \/>\n            }<br \/>\n            StringBuffer tempBuffer = StringBuffer baru(str);<br \/>\n            tempBuffer.replace(indeks, indeks + 1, suhu);<br \/>\n            kembalikan tempBuffer.toString();<br \/>\n        }<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Verifikasi apakah [nilai] adalah nilai yang valid.<br \/>\n     *<br \/>\n     * @param value String yang akan dievaluasi<br \/>\n     * @return [benar]: Jika bukan null dan bukan \u201c\u201d<br \/>\n     *\/<br \/>\n    boolean statis pribadi isExist(Nilai string) {<br \/>\n        if (nilai != null &amp;&amp; nilai.panjang() != 0) {<br \/>\n            kembali benar;<br \/>\n        }<br \/>\n        kembali salah;<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Kelas java.util.Date atau subkelasnya dalam format yang ditentukan<br \/>\n     * Konversikan ke string.<br \/>\n     * @param date kelas Java.util.Date yang akan dikonversi<br \/>\n     * Format yang ditentukan pola @param<br \/>\n     * @return string tanggal yang diformat<br \/>\n     *\/<br \/>\n    private static String toStringDate(Tanggal tanggal, pola String) {<br \/>\n        SimpleDateFormat sdFormat = new SimpleDateFormat(pola);<br \/>\n        return sdFormat.format(tanggal);<br \/>\n    }<\/p>\n<p>    java.sql.Date statis pribadi toSqlDate(String strDate) {<br \/>\n        Kalender cal = toCalendar(strDate);<br \/>\n        kembali keSqlDate(cal);<br \/>\n    }<\/p>\n<p>    private static java.sql.Date toSqlDate(Calendar cal) {<br \/>\n        panjang l = cal.getTime().getTime();<br \/>\n        kembalikan java.sql.Date(l);<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Mengonversi nilai waktu lama menjadi string dalam format yang ditentukan.<br \/>\n     * @param time Nilai panjang yang mewakili milidetik waktu saat ini.<br \/>\n     * Format yang ditentukan pola @param<br \/>\n     * @return string tanggal yang diformat<br \/>\n     *\/<br \/>\n    private static String toStringDate(lama, pola String) {<br \/>\n        return toStringDate(Tanggal baru(waktu), pola);<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * String \u21d2 java.sql.Tanggal<br \/>\n     *<br \/>\n     * Ubah string tanggal berikut menjadi java.sql.Date<br \/>\n     * yyyy\/MM\/dd HH:mm:ss.SSS yyyy-MM-dd HH:mm:ss.SSS<br \/>\n     *<br \/>\n     * &#8220;20030407&#8221; &#8220;2003\/04\/07&#8221; &#8220;2003-04-07&#8221; &#8220;2003\/04\/07 15:20:16&#8221; &#8220;2003-04-07<br \/>\n     * 15:20:16&#8221;<br \/>\n     * @param strDate<br \/>\n     * @kembali<br \/>\n     *\/<br \/>\n    Kalender statis pribadi toCalendar(String strDate) {<br \/>\n        strTanggal = format(strTanggal);<br \/>\n        Kalender cal = Kalender.getInstance();<\/p>\n<p>        int yyyy = Integer.parseInt(strDate.substring(0, 4));<br \/>\n        int MM = Integer.parseInt(strDate.substring(5, 7));<br \/>\n        int dd = Integer.parseInt(strDate.substring(8, 10));<br \/>\n        int HH = cal.get(Kalender.HOUR_OF_DAY);<br \/>\n        int mm = cal.get(Kalender.MINUTE);<br \/>\n        int ss = cal.get(Kalender.SECOND);<br \/>\n        int SSS = cal.get(Kalender.MILLISECOND);<\/p>\n<p>        cal.clear();<br \/>\n        cal.set(yyyy, MM \u2013 1, hh);<\/p>\n<p>        int len = strDate.length();<br \/>\n        saklar (len) {<br \/>\n        kasus 10:<br \/>\n            merusak;<br \/>\n        kasus 16: \/\/ yyyy\/MM\/dd HH:mm<br \/>\n            HH = Integer.parseInt(strDate.substring(11, 13));<br \/>\n            mm = Integer.parseInt(strDate.substring(14, 16));<br \/>\n            cal.set(Kalender.HOUR_OF_DAY, HH);<br \/>\n            cal.set(Kalender.MINUTE, mm);<br \/>\n            merusak;<br \/>\n        kasus 19: \/\/ yyyy\/MM\/dd HH:mm:ss<br \/>\n            HH = Integer.parseInt(strDate.substring(11, 13));<br \/>\n            mm = Integer.parseInt(strDate.substring(14, 16));<br \/>\n            ss = Integer.parseInt(strDate.substring(17, 19));<br \/>\n            cal.set(Kalender.HOUR_OF_DAY, HH);<br \/>\n            cal.set(Kalender.MINUTE, mm);<br \/>\n            cal.set(Kalender.SECOND, ss);<br \/>\n            merusak;<br \/>\n        kasus 23: \/\/ yyyy\/MM\/dd HH:mm:ss.SSS<br \/>\n            HH = Integer.parseInt(strDate.substring(11, 13));<br \/>\n            mm = Integer.parseInt(strDate.substring(14, 16));<br \/>\n            ss = Integer.parseInt(strDate.substring(17, 19));<br \/>\n            SSS = Integer.parseInt(strDate.substring(20, 23));<br \/>\n            cal.set(Kalender.HOUR_OF_DAY, HH);<br \/>\n            cal.set(Kalender.MINUTE, mm);<br \/>\n            cal.set(Kalender.SECOND, ss);<br \/>\n            cal.set(Kalender.MILLISECOND, SSS);<br \/>\n            merusak;<br \/>\n        bawaan:<br \/>\n            melempar IllegalStateException baru(<br \/>\n                    \u201cString string ini tidak dapat dikonversi menjadi string tanggal:\u201d<br \/>\n                    +strTanggal);<br \/>\n        }<br \/>\n        kembalikan kal;<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * String tanggal apa pun sebagai \u201cyyyy\/MM\/dd\u201d atau \u201cyyyy\/MM\/dd HH:mm:ss\u201d<br \/>\n     * Upaya untuk mengkonversi ke format.<br \/>\n     * Contoh: 01\/03\/03 \u21d2 01\/03\/2003<br \/>\n     * @param strDate<br \/>\n     * @kembali<br \/>\n     *\/<br \/>\n    format String statis pribadi(String strDate) {<br \/>\n        strTanggal = strTanggal.trim();<br \/>\n        String yyyy = nol;<br \/>\n        String MM = nol;<br \/>\n        String dd = nol;<br \/>\n        String HH = nol;<br \/>\n        String mm = nol;<br \/>\n        String ss = nol;<br \/>\n        String SSS = nol;<\/p>\n<p>        \/\/ Jika \u201c-\u201d atau \u201c\/\u201d tidak ada<br \/>\n        if (strDate.indexOf(\u201c\/\u201d) == -1 &amp;&amp; strDate.indexOf(\u201c-\u201c) == -1) {<br \/>\n            if (strTanggal.panjang() == 8) {<br \/>\n                yyyy = strDate.substring(0, 4);<br \/>\n                MM = strDate.substring(4, 6);<br \/>\n                dd = strDate.substring(6, 8);<br \/>\n                kembali tttt + \u201c\/\u201d + MM + \u201c\/\u201d + hh;<br \/>\n            } kalau tidak {<br \/>\n                yyyy = strDate.substring(0, 4);<br \/>\n                MM = strDate.substring(4, 6);<br \/>\n                dd = strDate.substring(6, 8);<br \/>\n                HH = strDate.substring(9, 11);<br \/>\n                mm = strDate.substring(12, 14);<br \/>\n                ss = strDate.substring(15, 17);<br \/>\n                kembali tttt + \u201c\/\u201d + MM + \u201c\/\u201d + hh + \u201d \u201d + HH + \u201c:\u201d + mm + \u201c:\u201d<br \/>\n                        +ss;<br \/>\n            }<br \/>\n        }<br \/>\n        Token StringTokenizer = StringTokenizer baru(strDate, \u201c_\/-:. \u201c);<br \/>\n        Hasil StringBuffer = StringBuffer baru();<br \/>\n        untuk (int i = 0; token.hasMoreTokens(); i++) {<br \/>\n            String suhu = token.nextToken();<br \/>\n            beralih (i) {<br \/>\n            kasus 0:\/\/ bagian tahun<br \/>\n                yyyy = fillString(strDate, temp, \u201cf\u201d, \u201c20\u201d, 4);<br \/>\n                hasil.tambahkan(yyyy);<br \/>\n                merusak;<br \/>\n            kasus 1:\/\/ bagian bulan<br \/>\n                MM = fillString(strDate, temp, \u201cf\u201d, \u201c0\u201d, 2);<br \/>\n                hasil.tambahkan(\u201c\/\u201d + MM);<br \/>\n                merusak;<br \/>\n            kasus 2:\/\/ bagian hari<br \/>\n                dd = fillString(strDate, temp, \u201cf\u201d, \u201c0\u201d, 2);<br \/>\n                hasil.tambahkan(\u201c\/\u201d + dd);<br \/>\n                merusak;<br \/>\n            kasus 3:\/\/ bagian waktu<br \/>\n                HH = fillString(strDate, temp, \u201cf\u201d, \u201c0\u201d, 2);<br \/>\n                hasil.tambahkan(\u201d \u201d + HH);<br \/>\n                merusak;<br \/>\n            kasus 4:\/\/ bagian menit<br \/>\n                mm = fillString(strDate, temp, \u201cf\u201d, \u201c0\u201d, 2);<br \/>\n                hasil.tambahkan(\u201c:\u201d + mm);<br \/>\n                merusak;<br \/>\n            kasus 5:\/\/ bagian kedua<br \/>\n                ss = fillString(strTanggal, suhu, \u201cf\u201d, \u201c0\u201d, 2);<br \/>\n                hasil.tambahkan(\u201c:\u201d + ss);<br \/>\n                merusak;<br \/>\n            kasus 6:\/\/ bagian milidetik<br \/>\n                SSS = fillString(strDate, temp, \u201cb\u201d, \u201c0\u201d, 3);<br \/>\n                hasil.tambahkan(\u201c.\u201d + SSS);<br \/>\n                merusak;<br \/>\n            }<br \/>\n        }<br \/>\n        kembalikan hasil.toString();<br \/>\n    }<\/p>\n<p>    String statis pribadi fillString(String strDate, String str,<br \/>\n            Posisi string, String addStr, int len) {<\/p>\n<p>        if (str.panjang() &gt; len) {<br \/>\n            String mes = strDate + \u201cString String ini tidak dapat diubah menjadi string tanggal\u201d;<br \/>\n            membuang IllegalStateException(mes);<br \/>\n        }<br \/>\n        kembalikan fillString(str, posisi, addStr, len);<br \/>\n    }<\/p>\n<p>    \/**<br \/>\n     * Tambahkan string [addStr] yang akan ditambahkan ke string [str] pada [posisi] di [len]<br \/>\n     * Masukkan hingga penuh.<br \/>\n     * &lt;p&gt;<br \/>\n     * Contoh: String ss = StringUtil.fillString(\u201caaa\u201d,\u201db\u201d,\u201d0\u2033,7); ss \u21d2 \u201caaa0000\u201d<br \/>\n     *<br \/>\n     * *fillString() menyisipkan hingga len terisi, tetapi addString() menyisipkan len.<br \/>\n     *<br \/>\n     * @param str string target<br \/>\n     * @param position Sisipkan sebelum \u21d2 F\/f Sisipkan setelah \u21d2 B\/b<br \/>\n     * @param addStr String untuk disisipkan<br \/>\n     * @param len Jumlah digit yang akan diisi ulang<br \/>\n     * @return String setelah konversi. [str] adalah null atau literal kosong, [addStr] disetel ke [len]<br \/>\n     * Mengembalikan hasil yang dimasukkan hingga puas.<br \/>\n     *\/<br \/>\n    String statis pribadi fillString(String str, posisi String,<br \/>\n            String addStr, ke dalam len) {<br \/>\n        StringBuffer tempBuffer = nol;<br \/>\n        jika (!isExist(str)) {<br \/>\n            tempBuffer = StringBuffer baru();<br \/>\n            untuk (int saya = 0; saya &lt; len; saya++) {<br \/>\n                tempBuffer.append(addStr);<br \/>\n            }<br \/>\n            kembalikan tempBuffer.toString();<br \/>\n        } lain jika (str.panjang() != len) {<br \/>\n            tempBuffer = StringBuffer baru(str);<br \/>\n            while (len &gt; tempBuffer.length()) {<br \/>\n                if (posisi.equalsIgnoreCase(\u201cf\u201d)) {<br \/>\n                    tempBuffer.insert(0, addStr);<br \/>\n                } kalau tidak {<br \/>\n                    tempBuffer.append(addStr);<br \/>\n                }<br \/>\n            }<br \/>\n            kembalikan tempBuffer.toString();<br \/>\n        }<br \/>\n        kembalikan str;<br \/>\n    }<\/p>\n<p>}<br \/>\n<\/textarea><\/p>","protected":false},"excerpt":{"rendered":"<p>Refleksi Java menjadi mudah Memperkenalkan kelas utilitas yang memungkinkan Anda menggunakan API refleksi Java dengan mudah [\u2026]<\/p>","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"swell_btn_cv_data":""},"categories":[19],"tags":[],"_links":{"self":[{"href":"https:\/\/chat-messenger.com\/id\/wp-json\/wp\/v2\/posts\/917"}],"collection":[{"href":"https:\/\/chat-messenger.com\/id\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/chat-messenger.com\/id\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/chat-messenger.com\/id\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/chat-messenger.com\/id\/wp-json\/wp\/v2\/comments?post=917"}],"version-history":[{"count":6,"href":"https:\/\/chat-messenger.com\/id\/wp-json\/wp\/v2\/posts\/917\/revisions"}],"predecessor-version":[{"id":1896,"href":"https:\/\/chat-messenger.com\/id\/wp-json\/wp\/v2\/posts\/917\/revisions\/1896"}],"wp:attachment":[{"href":"https:\/\/chat-messenger.com\/id\/wp-json\/wp\/v2\/media?parent=917"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/chat-messenger.com\/id\/wp-json\/wp\/v2\/categories?post=917"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chat-messenger.com\/id\/wp-json\/wp\/v2\/tags?post=917"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}