From 972ff966996282d8bfc4bf34dcf03592a53ea58c Mon Sep 17 00:00:00 2001 From: kwoyke Date: Sat, 12 Sep 2020 19:08:22 +0200 Subject: [PATCH] BAEL-4587: Update Guide to Java Reflection (#9997) * BAEL-4587: Migrate Guide to Java Reflection to core-java-11-2 * BAEL-4587: Replace deprecated isAccessible method with canAccess --- core-java-modules/core-java-11-2/README.md | 2 +- .../java/com/baeldung}/reflection/Animal.java | 2 +- .../java/com/baeldung}/reflection/Bird.java | 2 +- .../baeldung}/reflection/DynamicGreeter.java | 2 +- .../java/com/baeldung}/reflection/Eating.java | 2 +- .../java/com/baeldung}/reflection/Goat.java | 2 +- .../com/baeldung}/reflection/Greeter.java | 2 +- .../reflection/GreetingAnnotation.java | 2 +- .../com/baeldung}/reflection/Greetings.java | 2 +- .../com/baeldung}/reflection/Locomotion.java | 2 +- .../com/baeldung}/reflection/Operations.java | 2 +- .../java/com/baeldung}/reflection/Person.java | 2 +- .../reflection/OperationsUnitTest.java | 2 +- .../reflection/ReflectionUnitTest.java | 73 +++++++++---------- .../core-java-reflection/README.MD | 1 - 15 files changed, 46 insertions(+), 54 deletions(-) rename core-java-modules/{core-java-reflection/src/main/java/com/baeldung/reflection/java => core-java-11-2/src/main/java/com/baeldung}/reflection/Animal.java (90%) rename core-java-modules/{core-java-reflection/src/main/java/com/baeldung/reflection/java => core-java-11-2/src/main/java/com/baeldung}/reflection/Bird.java (93%) rename core-java-modules/{core-java-reflection/src/main/java/com/baeldung/reflection/java => core-java-11-2/src/main/java/com/baeldung}/reflection/DynamicGreeter.java (91%) rename core-java-modules/{core-java-reflection/src/main/java/com/baeldung/reflection/java => core-java-11-2/src/main/java/com/baeldung}/reflection/Eating.java (55%) rename core-java-modules/{core-java-reflection/src/main/java/com/baeldung/reflection/java => core-java-11-2/src/main/java/com/baeldung}/reflection/Goat.java (90%) rename core-java-modules/{core-java-reflection/src/main/java/com/baeldung/reflection/java => core-java-11-2/src/main/java/com/baeldung}/reflection/Greeter.java (83%) rename core-java-modules/{core-java-reflection/src/main/java/com/baeldung/reflection/java => core-java-11-2/src/main/java/com/baeldung}/reflection/GreetingAnnotation.java (98%) rename core-java-modules/{core-java-reflection/src/main/java/com/baeldung/reflection/java => core-java-11-2/src/main/java/com/baeldung}/reflection/Greetings.java (61%) rename core-java-modules/{core-java-reflection/src/main/java/com/baeldung/reflection/java => core-java-11-2/src/main/java/com/baeldung}/reflection/Locomotion.java (61%) rename core-java-modules/{core-java-reflection/src/main/java/com/baeldung/reflection/java => core-java-11-2/src/main/java/com/baeldung}/reflection/Operations.java (90%) rename core-java-modules/{core-java-reflection/src/main/java/com/baeldung/reflection/java => core-java-11-2/src/main/java/com/baeldung}/reflection/Person.java (65%) rename core-java-modules/{core-java-reflection/src/test/java/com/baeldung/reflection/java => core-java-11-2/src/test/java/com/baeldung}/reflection/OperationsUnitTest.java (98%) rename core-java-modules/{core-java-reflection/src/test/java/com/baeldung/reflection/java => core-java-11-2/src/test/java/com/baeldung}/reflection/ReflectionUnitTest.java (77%) diff --git a/core-java-modules/core-java-11-2/README.md b/core-java-modules/core-java-11-2/README.md index d77bf748a8..834f310fce 100644 --- a/core-java-modules/core-java-11-2/README.md +++ b/core-java-modules/core-java-11-2/README.md @@ -4,5 +4,5 @@ This module contains articles about Java 11 core features ### Relevant articles - [Guide to Java 8 Optional](https://www.baeldung.com/java-optional) +- [Guide to Java Reflection](http://www.baeldung.com/java-reflection) - [Guide to Java 8’s Collectors](https://www.baeldung.com/java-8-collectors) - diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Animal.java b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Animal.java similarity index 90% rename from core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Animal.java rename to core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Animal.java index 3f36243c29..364246ae64 100644 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Animal.java +++ b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Animal.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; public abstract class Animal implements Eating { diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Bird.java b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Bird.java similarity index 93% rename from core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Bird.java rename to core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Bird.java index bd6f13094c..f5bb0f9b19 100644 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Bird.java +++ b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Bird.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; public class Bird extends Animal { private boolean walks; diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/DynamicGreeter.java b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/DynamicGreeter.java similarity index 91% rename from core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/DynamicGreeter.java rename to core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/DynamicGreeter.java index 3776ef82e2..b7ff083daf 100644 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/DynamicGreeter.java +++ b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/DynamicGreeter.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; import java.lang.annotation.Annotation; diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Eating.java b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Eating.java similarity index 55% rename from core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Eating.java rename to core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Eating.java index 479425cad4..c959becf00 100644 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Eating.java +++ b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Eating.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; public interface Eating { String eats(); diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Goat.java b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Goat.java similarity index 90% rename from core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Goat.java rename to core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Goat.java index 503717ae5e..086d09d543 100644 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Goat.java +++ b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Goat.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; public class Goat extends Animal implements Locomotion { diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Greeter.java b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Greeter.java similarity index 83% rename from core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Greeter.java rename to core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Greeter.java index 57aefdd169..d06a719312 100644 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Greeter.java +++ b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Greeter.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/GreetingAnnotation.java b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/GreetingAnnotation.java similarity index 98% rename from core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/GreetingAnnotation.java rename to core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/GreetingAnnotation.java index 601306f5d2..f23c407c52 100644 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/GreetingAnnotation.java +++ b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/GreetingAnnotation.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; import java.lang.annotation.Annotation; import java.lang.reflect.Field; diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Greetings.java b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Greetings.java similarity index 61% rename from core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Greetings.java rename to core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Greetings.java index 4f3a20c3b9..fc6dfe949b 100644 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Greetings.java +++ b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Greetings.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; @Greeter(greet="Good morning") public class Greetings { diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Locomotion.java b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Locomotion.java similarity index 61% rename from core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Locomotion.java rename to core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Locomotion.java index 047c00cb13..230fd9a466 100644 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Locomotion.java +++ b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Locomotion.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; public interface Locomotion { String getLocomotion(); diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Operations.java b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Operations.java similarity index 90% rename from core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Operations.java rename to core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Operations.java index da4b479b02..5264378524 100644 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Operations.java +++ b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Operations.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; public class Operations { diff --git a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Person.java b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Person.java similarity index 65% rename from core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Person.java rename to core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Person.java index f3d7f9f001..1a1fafef93 100644 --- a/core-java-modules/core-java-reflection/src/main/java/com/baeldung/reflection/java/reflection/Person.java +++ b/core-java-modules/core-java-11-2/src/main/java/com/baeldung/reflection/Person.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; public class Person { private String name; diff --git a/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/java/reflection/OperationsUnitTest.java b/core-java-modules/core-java-11-2/src/test/java/com/baeldung/reflection/OperationsUnitTest.java similarity index 98% rename from core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/java/reflection/OperationsUnitTest.java rename to core-java-modules/core-java-11-2/src/test/java/com/baeldung/reflection/OperationsUnitTest.java index 217910bffd..7584d5da94 100644 --- a/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/java/reflection/OperationsUnitTest.java +++ b/core-java-modules/core-java-11-2/src/test/java/com/baeldung/reflection/OperationsUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; import static org.hamcrest.CoreMatchers.equalTo; import static org.junit.Assert.assertFalse; diff --git a/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/java/reflection/ReflectionUnitTest.java b/core-java-modules/core-java-11-2/src/test/java/com/baeldung/reflection/ReflectionUnitTest.java similarity index 77% rename from core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/java/reflection/ReflectionUnitTest.java rename to core-java-modules/core-java-11-2/src/test/java/com/baeldung/reflection/ReflectionUnitTest.java index a791d64874..c73fa5f8e0 100644 --- a/core-java-modules/core-java-reflection/src/test/java/com/baeldung/reflection/java/reflection/ReflectionUnitTest.java +++ b/core-java-modules/core-java-11-2/src/test/java/com/baeldung/reflection/ReflectionUnitTest.java @@ -1,4 +1,4 @@ -package com.baeldung.java.reflection; +package com.baeldung.reflection; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -32,23 +32,23 @@ public class ReflectionUnitTest { final Class clazz = goat.getClass(); assertEquals("Goat", clazz.getSimpleName()); - assertEquals("com.baeldung.java.reflection.Goat", clazz.getName()); - assertEquals("com.baeldung.java.reflection.Goat", clazz.getCanonicalName()); + assertEquals("com.baeldung.reflection.Goat", clazz.getName()); + assertEquals("com.baeldung.reflection.Goat", clazz.getCanonicalName()); } @Test public void givenClassName_whenCreatesObject_thenCorrect() throws ClassNotFoundException { - final Class clazz = Class.forName("com.baeldung.java.reflection.Goat"); + final Class clazz = Class.forName("com.baeldung.reflection.Goat"); assertEquals("Goat", clazz.getSimpleName()); - assertEquals("com.baeldung.java.reflection.Goat", clazz.getName()); - assertEquals("com.baeldung.java.reflection.Goat", clazz.getCanonicalName()); + assertEquals("com.baeldung.reflection.Goat", clazz.getName()); + assertEquals("com.baeldung.reflection.Goat", clazz.getCanonicalName()); } @Test public void givenClass_whenRecognisesModifiers_thenCorrect() throws ClassNotFoundException { - final Class goatClass = Class.forName("com.baeldung.java.reflection.Goat"); - final Class animalClass = Class.forName("com.baeldung.java.reflection.Animal"); + final Class goatClass = Class.forName("com.baeldung.reflection.Goat"); + final Class animalClass = Class.forName("com.baeldung.reflection.Animal"); final int goatMods = goatClass.getModifiers(); final int animalMods = animalClass.getModifiers(); @@ -63,7 +63,7 @@ public class ReflectionUnitTest { final Class goatClass = goat.getClass(); final Package pkg = goatClass.getPackage(); - assertEquals("com.baeldung.java.reflection", pkg.getName()); + assertEquals("com.baeldung.reflection", pkg.getName()); } @Test @@ -81,8 +81,8 @@ public class ReflectionUnitTest { @Test public void givenClass_whenGetsImplementedInterfaces_thenCorrect() throws ClassNotFoundException { - final Class goatClass = Class.forName("com.baeldung.java.reflection.Goat"); - final Class animalClass = Class.forName("com.baeldung.java.reflection.Animal"); + final Class goatClass = Class.forName("com.baeldung.reflection.Goat"); + final Class animalClass = Class.forName("com.baeldung.reflection.Animal"); final Class[] goatInterfaces = goatClass.getInterfaces(); final Class[] animalInterfaces = animalClass.getInterfaces(); @@ -94,16 +94,16 @@ public class ReflectionUnitTest { @Test public void givenClass_whenGetsConstructor_thenCorrect() throws ClassNotFoundException { - final Class goatClass = Class.forName("com.baeldung.java.reflection.Goat"); + final Class goatClass = Class.forName("com.baeldung.reflection.Goat"); final Constructor[] constructors = goatClass.getConstructors(); assertEquals(1, constructors.length); - assertEquals("com.baeldung.java.reflection.Goat", constructors[0].getName()); + assertEquals("com.baeldung.reflection.Goat", constructors[0].getName()); } @Test public void givenClass_whenGetsFields_thenCorrect() throws ClassNotFoundException { - final Class animalClass = Class.forName("com.baeldung.java.reflection.Animal"); + final Class animalClass = Class.forName("com.baeldung.reflection.Animal"); final Field[] fields = animalClass.getDeclaredFields(); final List actualFields = getFieldNames(fields); @@ -114,7 +114,7 @@ public class ReflectionUnitTest { @Test public void givenClass_whenGetsMethods_thenCorrect() throws ClassNotFoundException { - final Class animalClass = Class.forName("com.baeldung.java.reflection.Animal"); + final Class animalClass = Class.forName("com.baeldung.reflection.Animal"); final Method[] methods = animalClass.getDeclaredMethods(); final List actualMethods = getMethodNames(methods); @@ -124,7 +124,7 @@ public class ReflectionUnitTest { @Test public void givenClass_whenGetsAllConstructors_thenCorrect() throws ClassNotFoundException { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); final Constructor[] constructors = birdClass.getConstructors(); assertEquals(3, constructors.length); @@ -132,7 +132,7 @@ public class ReflectionUnitTest { @Test public void givenClass_whenGetsEachConstructorByParamTypes_thenCorrect() throws Exception { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); birdClass.getConstructor(); birdClass.getConstructor(String.class); birdClass.getConstructor(String.class, boolean.class); @@ -140,7 +140,7 @@ public class ReflectionUnitTest { @Test public void givenClass_whenInstantiatesObjectsAtRuntime_thenCorrect() throws Exception { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); final Constructor cons1 = birdClass.getConstructor(); final Constructor cons2 = birdClass.getConstructor(String.class); @@ -159,7 +159,7 @@ public class ReflectionUnitTest { @Test public void givenClass_whenGetsPublicFields_thenCorrect() throws ClassNotFoundException { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); final Field[] fields = birdClass.getFields(); assertEquals(1, fields.length); assertEquals("CATEGORY", fields[0].getName()); @@ -168,7 +168,7 @@ public class ReflectionUnitTest { @Test public void givenClass_whenGetsPublicFieldByName_thenCorrect() throws Exception { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); final Field field = birdClass.getField("CATEGORY"); assertEquals("CATEGORY", field.getName()); @@ -176,7 +176,7 @@ public class ReflectionUnitTest { @Test public void givenClass_whenGetsDeclaredFields_thenCorrect() throws ClassNotFoundException { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); final Field[] fields = birdClass.getDeclaredFields(); assertEquals(1, fields.length); assertEquals("walks", fields[0].getName()); @@ -184,7 +184,7 @@ public class ReflectionUnitTest { @Test public void givenClass_whenGetsFieldsByName_thenCorrect() throws Exception { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); final Field field = birdClass.getDeclaredField("walks"); assertEquals("walks", field.getName()); @@ -192,14 +192,14 @@ public class ReflectionUnitTest { @Test public void givenClassField_whenGetsType_thenCorrect() throws Exception { - final Field field = Class.forName("com.baeldung.java.reflection.Bird").getDeclaredField("walks"); + final Field field = Class.forName("com.baeldung.reflection.Bird").getDeclaredField("walks"); final Class fieldClass = field.getType(); assertEquals("boolean", fieldClass.getSimpleName()); } @Test public void givenClassField_whenSetsAndGetsValue_thenCorrect() throws Exception { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); final Bird bird = (Bird) birdClass.getConstructor().newInstance(); final Field field = birdClass.getDeclaredField("walks"); field.setAccessible(true); @@ -216,7 +216,7 @@ public class ReflectionUnitTest { @Test public void givenClassField_whenGetsAndSetsWithNull_thenCorrect() throws Exception { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); final Field field = birdClass.getField("CATEGORY"); field.setAccessible(true); @@ -225,7 +225,7 @@ public class ReflectionUnitTest { @Test public void givenClass_whenGetsAllPublicMethods_thenCorrect() throws ClassNotFoundException { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); final Method[] methods = birdClass.getMethods(); final List methodNames = getMethodNames(methods); @@ -235,7 +235,7 @@ public class ReflectionUnitTest { @Test public void givenClass_whenGetsOnlyDeclaredMethods_thenCorrect() throws ClassNotFoundException { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); final List actualMethodNames = getMethodNames(birdClass.getDeclaredMethods()); final List expectedMethodNames = Arrays.asList("setWalks", "walks", "getSound", "eats"); @@ -248,24 +248,17 @@ public class ReflectionUnitTest { @Test public void givenMethodName_whenGetsMethod_thenCorrect() throws Exception { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); - final Method walksMethod = birdClass.getDeclaredMethod("walks"); - final Method setWalksMethod = birdClass.getDeclaredMethod("setWalks", boolean.class); - - assertFalse(walksMethod.isAccessible()); - assertFalse(setWalksMethod.isAccessible()); - - walksMethod.setAccessible(true); - setWalksMethod.setAccessible(true); - - assertTrue(walksMethod.isAccessible()); - assertTrue(setWalksMethod.isAccessible()); + final Bird bird = new Bird(); + final Method walksMethod = bird.getClass().getDeclaredMethod("walks"); + final Method setWalksMethod = bird.getClass().getDeclaredMethod("setWalks", boolean.class); + assertTrue(walksMethod.canAccess(bird)); + assertTrue(setWalksMethod.canAccess(bird)); } @Test public void givenMethod_whenInvokes_thenCorrect() throws Exception { - final Class birdClass = Class.forName("com.baeldung.java.reflection.Bird"); + final Class birdClass = Class.forName("com.baeldung.reflection.Bird"); final Bird bird = (Bird) birdClass.getConstructor().newInstance(); final Method setWalksMethod = birdClass.getDeclaredMethod("setWalks", boolean.class); final Method walksMethod = birdClass.getDeclaredMethod("walks"); diff --git a/core-java-modules/core-java-reflection/README.MD b/core-java-modules/core-java-reflection/README.MD index 5d8c54414b..62d8719981 100644 --- a/core-java-modules/core-java-reflection/README.MD +++ b/core-java-modules/core-java-reflection/README.MD @@ -3,7 +3,6 @@ - [Void Type in Java](https://www.baeldung.com/java-void-type) - [Retrieve Fields from a Java Class Using Reflection](https://www.baeldung.com/java-reflection-class-fields) - [Method Parameter Reflection in Java](http://www.baeldung.com/java-parameter-reflection) -- [Guide to Java Reflection](http://www.baeldung.com/java-reflection) - [Call Methods at Runtime Using Java Reflection](http://www.baeldung.com/java-method-reflection) - [Changing Annotation Parameters At Runtime](http://www.baeldung.com/java-reflection-change-annotation-params) - [Dynamic Proxies in Java](http://www.baeldung.com/java-dynamic-proxies)