<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FReflection%2FEnum</id>
		<title>Java/Reflection/Enum - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FReflection%2FEnum"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Reflection/Enum&amp;action=history"/>
		<updated>2026-04-23T11:52:23Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Reflection/Enum&amp;diff=6063&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Reflection/Enum&amp;diff=6063&amp;oldid=prev"/>
				<updated>2010-06-01T06:01:28Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:01, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Reflection/Enum&amp;diff=6062&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Reflection/Enum&amp;diff=6062&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:43Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Deal with enum type and its method ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions&lt;br /&gt;
 * are met:&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions of source code must retain the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions in binary form must reproduce the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer in the&lt;br /&gt;
 *     documentation and/or other materials provided with the distribution.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Neither the name of Sun Microsystems nor the names of its&lt;br /&gt;
 *     contributors may be used to endorse or promote products derived&lt;br /&gt;
 *     from this software without specific prior written permission.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS&lt;br /&gt;
 * IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR&lt;br /&gt;
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR&lt;br /&gt;
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR&lt;br /&gt;
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF&lt;br /&gt;
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;br /&gt;
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 */&lt;br /&gt;
import static java.lang.System.out;&lt;br /&gt;
import java.lang.reflect.Constructor;&lt;br /&gt;
import java.lang.reflect.InvocationTargetException;&lt;br /&gt;
enum Charge {&lt;br /&gt;
  POSITIVE, NEGATIVE, NEUTRAL;&lt;br /&gt;
  Charge() {&lt;br /&gt;
    out.format(&amp;quot;under construction%n&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class EnumTrouble {&lt;br /&gt;
  public static void main(String... args) {&lt;br /&gt;
    try {&lt;br /&gt;
      Class&amp;lt;?&amp;gt; c = Charge.class;&lt;br /&gt;
      Constructor[] ctors = c.getDeclaredConstructors();&lt;br /&gt;
      for (Constructor ctor : ctors) {&lt;br /&gt;
        out.format(&amp;quot;Constructor: %s%n&amp;quot;, ctor.toGenericString());&lt;br /&gt;
        ctor.setAccessible(true);&lt;br /&gt;
        ctor.newInstance();&lt;br /&gt;
      }&lt;br /&gt;
      // production code should handle these exceptions more gracefully&lt;br /&gt;
    } catch (InstantiationException x) {&lt;br /&gt;
      x.printStackTrace();&lt;br /&gt;
    } catch (IllegalAccessException x) {&lt;br /&gt;
      x.printStackTrace();&lt;br /&gt;
    } catch (InvocationTargetException x) {&lt;br /&gt;
      x.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Deal with enum type field ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions&lt;br /&gt;
 * are met:&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions of source code must retain the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions in binary form must reproduce the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer in the&lt;br /&gt;
 *     documentation and/or other materials provided with the distribution.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Neither the name of Sun Microsystems nor the names of its&lt;br /&gt;
 *     contributors may be used to endorse or promote products derived&lt;br /&gt;
 *     from this software without specific prior written permission.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS&lt;br /&gt;
 * IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR&lt;br /&gt;
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR&lt;br /&gt;
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR&lt;br /&gt;
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF&lt;br /&gt;
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;br /&gt;
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 */&lt;br /&gt;
import java.lang.reflect.Field;&lt;br /&gt;
enum E0 {&lt;br /&gt;
  A, B&lt;br /&gt;
}&lt;br /&gt;
enum E1 {&lt;br /&gt;
  A, B&lt;br /&gt;
}&lt;br /&gt;
class ETest {&lt;br /&gt;
  private E0 fld = E0.A;&lt;br /&gt;
}&lt;br /&gt;
public class EnumTroubleToo {&lt;br /&gt;
  public static void main(String... args) {&lt;br /&gt;
    try {&lt;br /&gt;
      ETest test = new ETest();&lt;br /&gt;
      Field f = test.getClass().getDeclaredField(&amp;quot;fld&amp;quot;);&lt;br /&gt;
      f.setAccessible(true);&lt;br /&gt;
      f.set(test, E1.A); // IllegalArgumentException&lt;br /&gt;
      // production code should handle these exceptions more gracefully&lt;br /&gt;
    } catch (NoSuchFieldException x) {&lt;br /&gt;
      x.printStackTrace();&lt;br /&gt;
    } catch (IllegalAccessException x) {&lt;br /&gt;
      x.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Deal with Enum Type in reflection ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions&lt;br /&gt;
 * are met:&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions of source code must retain the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions in binary form must reproduce the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer in the&lt;br /&gt;
 *     documentation and/or other materials provided with the distribution.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Neither the name of Sun Microsystems nor the names of its&lt;br /&gt;
 *     contributors may be used to endorse or promote products derived&lt;br /&gt;
 *     from this software without specific prior written permission.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS&lt;br /&gt;
 * IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR&lt;br /&gt;
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR&lt;br /&gt;
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR&lt;br /&gt;
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF&lt;br /&gt;
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;br /&gt;
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 */&lt;br /&gt;
import static java.lang.System.out;&lt;br /&gt;
import java.lang.reflect.Field;&lt;br /&gt;
import java.util.Arrays;&lt;br /&gt;
enum Tweedle {&lt;br /&gt;
  DEE, DUM&lt;br /&gt;
}&lt;br /&gt;
public class Book {&lt;br /&gt;
  public long chapters = 0;&lt;br /&gt;
  public String[] characters = { &amp;quot;Alice&amp;quot;, &amp;quot;White Rabbit&amp;quot; };&lt;br /&gt;
  public Tweedle twin = Tweedle.DEE;&lt;br /&gt;
  public static void main(String... args) {&lt;br /&gt;
    Book book = new Book();&lt;br /&gt;
    String fmt = &amp;quot;%6S:  %-12s = %s%n&amp;quot;;&lt;br /&gt;
    try {&lt;br /&gt;
      Class&amp;lt;?&amp;gt; c = book.getClass();&lt;br /&gt;
      Field chap = c.getDeclaredField(&amp;quot;chapters&amp;quot;);&lt;br /&gt;
      out.format(fmt, &amp;quot;before&amp;quot;, &amp;quot;chapters&amp;quot;, book.chapters);&lt;br /&gt;
      chap.setLong(book, 12);&lt;br /&gt;
      out.format(fmt, &amp;quot;after&amp;quot;, &amp;quot;chapters&amp;quot;, chap.getLong(book));&lt;br /&gt;
      Field chars = c.getDeclaredField(&amp;quot;characters&amp;quot;);&lt;br /&gt;
      out.format(fmt, &amp;quot;before&amp;quot;, &amp;quot;characters&amp;quot;, Arrays.asList(book.characters));&lt;br /&gt;
      String[] newChars = { &amp;quot;Queen&amp;quot;, &amp;quot;King&amp;quot; };&lt;br /&gt;
      chars.set(book, newChars);&lt;br /&gt;
      out.format(fmt, &amp;quot;after&amp;quot;, &amp;quot;characters&amp;quot;, Arrays.asList(book.characters));&lt;br /&gt;
      Field t = c.getDeclaredField(&amp;quot;twin&amp;quot;);&lt;br /&gt;
      out.format(fmt, &amp;quot;before&amp;quot;, &amp;quot;twin&amp;quot;, book.twin);&lt;br /&gt;
      t.set(book, Tweedle.DUM);&lt;br /&gt;
      out.format(fmt, &amp;quot;after&amp;quot;, &amp;quot;twin&amp;quot;, t.get(book));&lt;br /&gt;
      // production code should handle these exceptions more gracefully&lt;br /&gt;
    } catch (NoSuchFieldException x) {&lt;br /&gt;
      x.printStackTrace();&lt;br /&gt;
    } catch (IllegalAccessException x) {&lt;br /&gt;
      x.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enum Spy ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions&lt;br /&gt;
 * are met:&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions of source code must retain the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions in binary form must reproduce the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer in the&lt;br /&gt;
 *     documentation and/or other materials provided with the distribution.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Neither the name of Sun Microsystems nor the names of its&lt;br /&gt;
 *     contributors may be used to endorse or promote products derived&lt;br /&gt;
 *     from this software without specific prior written permission.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS&lt;br /&gt;
 * IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR&lt;br /&gt;
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR&lt;br /&gt;
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR&lt;br /&gt;
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF&lt;br /&gt;
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;br /&gt;
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 */&lt;br /&gt;
import static java.lang.System.out;&lt;br /&gt;
import java.lang.reflect.Constructor;&lt;br /&gt;
import java.lang.reflect.Field;&lt;br /&gt;
import java.lang.reflect.Member;&lt;br /&gt;
import java.lang.reflect.Method;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
public class EnumSpy {&lt;br /&gt;
  private static final String fmt = &amp;quot;  %11s:  %s %s%n&amp;quot;;&lt;br /&gt;
  public static void main(String... args) {&lt;br /&gt;
    try {&lt;br /&gt;
      Class&amp;lt;?&amp;gt; c = Class.forName(args[0]);&lt;br /&gt;
      if (!c.isEnum()) {&lt;br /&gt;
        out.format(&amp;quot;%s is not an enum type%n&amp;quot;, c);&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      out.format(&amp;quot;Class:  %s%n&amp;quot;, c);&lt;br /&gt;
      Field[] flds = c.getDeclaredFields();&lt;br /&gt;
      List&amp;lt;Field&amp;gt; cst = new ArrayList&amp;lt;Field&amp;gt;(); // enum constants&lt;br /&gt;
      List&amp;lt;Field&amp;gt; mbr = new ArrayList&amp;lt;Field&amp;gt;(); // member fields&lt;br /&gt;
      for (Field f : flds) {&lt;br /&gt;
        if (f.isEnumConstant())&lt;br /&gt;
          cst.add(f);&lt;br /&gt;
        else&lt;br /&gt;
          mbr.add(f);&lt;br /&gt;
      }&lt;br /&gt;
      if (!cst.isEmpty())&lt;br /&gt;
        print(cst, &amp;quot;Constant&amp;quot;);&lt;br /&gt;
      if (!mbr.isEmpty())&lt;br /&gt;
        print(mbr, &amp;quot;Field&amp;quot;);&lt;br /&gt;
      Constructor[] ctors = c.getDeclaredConstructors();&lt;br /&gt;
      for (Constructor ctor : ctors) {&lt;br /&gt;
        out.format(fmt, &amp;quot;Constructor&amp;quot;, ctor.toGenericString(), synthetic(ctor));&lt;br /&gt;
      }&lt;br /&gt;
      Method[] mths = c.getDeclaredMethods();&lt;br /&gt;
      for (Method m : mths) {&lt;br /&gt;
        out.format(fmt, &amp;quot;Method&amp;quot;, m.toGenericString(), synthetic(m));&lt;br /&gt;
      }&lt;br /&gt;
      // production code should handle this exception more gracefully&lt;br /&gt;
    } catch (ClassNotFoundException x) {&lt;br /&gt;
      x.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  private static void print(List&amp;lt;Field&amp;gt; lst, String s) {&lt;br /&gt;
    for (Field f : lst) {&lt;br /&gt;
      out.format(fmt, s, f.toGenericString(), synthetic(f));&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  private static String synthetic(Member m) {&lt;br /&gt;
    return (m.isSynthetic() ? &amp;quot;[ synthetic ]&amp;quot; : &amp;quot;&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enum type as class ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions&lt;br /&gt;
 * are met:&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions of source code must retain the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions in binary form must reproduce the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer in the&lt;br /&gt;
 *     documentation and/or other materials provided with the distribution.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Neither the name of Sun Microsystems nor the names of its&lt;br /&gt;
 *     contributors may be used to endorse or promote products derived&lt;br /&gt;
 *     from this software without specific prior written permission.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS&lt;br /&gt;
 * IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR&lt;br /&gt;
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR&lt;br /&gt;
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR&lt;br /&gt;
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF&lt;br /&gt;
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;br /&gt;
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 */&lt;br /&gt;
import static java.lang.System.out;&lt;br /&gt;
import java.util.Arrays;&lt;br /&gt;
enum Eon {&lt;br /&gt;
  HADEAN, ARCHAEAN, PROTEROZOIC, PHANEROZOIC&lt;br /&gt;
}&lt;br /&gt;
public class EnumConstants {&lt;br /&gt;
  public static void main(String... args) {&lt;br /&gt;
    try {&lt;br /&gt;
      Class&amp;lt;?&amp;gt; c = (args.length == 0 ? Eon.class : Class.forName(args[0]));&lt;br /&gt;
      out.format(&amp;quot;Enum name:  %s%nEnum constants:  %s%n&amp;quot;, c.getName(), Arrays&lt;br /&gt;
          .asList(c.getEnumConstants()));&lt;br /&gt;
      if (c == Eon.class)&lt;br /&gt;
        out.format(&amp;quot;  Eon.values():  %s%n&amp;quot;, Arrays.asList(Eon.values()));&lt;br /&gt;
      // production code should handle this exception more gracefully&lt;br /&gt;
    } catch (ClassNotFoundException x) {&lt;br /&gt;
      x.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Get and set value of a Enum type field ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions&lt;br /&gt;
 * are met:&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions of source code must retain the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions in binary form must reproduce the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer in the&lt;br /&gt;
 *     documentation and/or other materials provided with the distribution.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Neither the name of Sun Microsystems nor the names of its&lt;br /&gt;
 *     contributors may be used to endorse or promote products derived&lt;br /&gt;
 *     from this software without specific prior written permission.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS&lt;br /&gt;
 * IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR&lt;br /&gt;
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR&lt;br /&gt;
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR&lt;br /&gt;
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF&lt;br /&gt;
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;br /&gt;
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 */&lt;br /&gt;
import static java.lang.System.out;&lt;br /&gt;
import java.lang.reflect.Field;&lt;br /&gt;
enum TraceLevel {&lt;br /&gt;
  OFF, LOW, MEDIUM, HIGH, DEBUG&lt;br /&gt;
}&lt;br /&gt;
class MyServer {&lt;br /&gt;
  private TraceLevel level = TraceLevel.OFF;&lt;br /&gt;
}&lt;br /&gt;
public class SetTrace {&lt;br /&gt;
  public static void main(String... args) {&lt;br /&gt;
    TraceLevel newLevel = TraceLevel.valueOf(args[0]);&lt;br /&gt;
    try {&lt;br /&gt;
      MyServer svr = new MyServer();&lt;br /&gt;
      Class&amp;lt;?&amp;gt; c = svr.getClass();&lt;br /&gt;
      Field f = c.getDeclaredField(&amp;quot;level&amp;quot;);&lt;br /&gt;
      f.setAccessible(true);&lt;br /&gt;
      TraceLevel oldLevel = (TraceLevel) f.get(svr);&lt;br /&gt;
      out.format(&amp;quot;Original trace level:  %s%n&amp;quot;, oldLevel);&lt;br /&gt;
      if (oldLevel != newLevel) {&lt;br /&gt;
        f.set(svr, newLevel);&lt;br /&gt;
        out.format(&amp;quot;    New  trace level:  %s%n&amp;quot;, f.get(svr));&lt;br /&gt;
      }&lt;br /&gt;
      // production code should handle these exceptions more gracefully&lt;br /&gt;
    } catch (IllegalArgumentException x) {&lt;br /&gt;
      x.printStackTrace();&lt;br /&gt;
    } catch (IllegalAccessException x) {&lt;br /&gt;
      x.printStackTrace();&lt;br /&gt;
    } catch (NoSuchFieldException x) {&lt;br /&gt;
      x.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Get declared methods for enum class ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import java.lang.reflect.Method;&lt;br /&gt;
import org.xml.sax.XMLReader;&lt;br /&gt;
public class GetMethod {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Method[] ms = String.class.getMethods();&lt;br /&gt;
    for (int i = 0; i &amp;lt; ms.length; i++) {&lt;br /&gt;
      // System.out.println(ms[i].getName());&lt;br /&gt;
    }&lt;br /&gt;
    Method[] ims = XMLReader.class.getMethods();&lt;br /&gt;
    for (int i = 0; i &amp;lt; ims.length; i++) {&lt;br /&gt;
      // System.out.println(ims[i].getName());&lt;br /&gt;
    }&lt;br /&gt;
    Method[] sms = Size.class.getMethods();&lt;br /&gt;
    for (int i = 0; i &amp;lt; sms.length; i++) {&lt;br /&gt;
      // System.out.println(sms[i].getName());&lt;br /&gt;
    }&lt;br /&gt;
    String pc = new String();&lt;br /&gt;
    try {&lt;br /&gt;
      Method setCpu = String.class.getMethod(&amp;quot;toString&amp;quot;, String.class);&lt;br /&gt;
      setCpu.invoke(pc, &amp;quot;Intel 3.0&amp;quot;);&lt;br /&gt;
      System.out.println(pc.toString());&lt;br /&gt;
    } catch (Exception e) {&lt;br /&gt;
      e.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
enum Size {&lt;br /&gt;
  S, M, L, XL, XXL, XXXL;&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Is it an enum ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import org.xml.sax.XMLReader;&lt;br /&gt;
&lt;br /&gt;
public class IsEnum {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        System.out.println(Size.class.isEnum());&lt;br /&gt;
        System.out.println(String.class.isEnum());&lt;br /&gt;
        System.out.println(String.class.isInstance(&amp;quot;Test&amp;quot;));     &lt;br /&gt;
        System.out.println(XMLReader.class.isInterface());          &lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
enum Size {&lt;br /&gt;
  S, M, L, XL, XXL, XXXL;&lt;br /&gt;
}&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>