본문 바로가기

Reflection

[Java] 패키지 탐색하기~! Java에서 Reflection을 편리하게? 사용하기 위한 라이브러리가 있다. 아래와 같이 사용하면 된다.~! 1. 라이브러리 추가 org.reflections reflections 0.9.9-RC1 2. 사용법Reflections reflections = new Reflections("my.project.prefix"); Set> annotated = reflections.getTypesAnnotatedWith(SomeAnnotation.class); Reflections reflections = new Reflections("my.package.prefix"); //or Reflections reflections = new Reflections(ClasspathHelper.forPackage("my... 더보기
[Java] Class Method 접근 및 사용 tClass는 해당 사용할 함수를 가진 Class 이고 instance는 tClass의 instance이다.그리고 invoke 하면 호출이 되어지고 Paramater도 마찬가지로 class를 넣어주면 된다. 그리고 invoke에 같이 paramater를 넣어주면된다. final Method setTargetNoMethod = tClass.getMethod("set" + modelClassName + "No", Integer.class); setTargetNoMethod.invoke(instance, info.getTargetNo()); 더보기
[Java] Class Field 접근 및 값 수정 Java의 리플렉션은 강력하다~! 변수를 Private로 선언하여도 임의로 값 변경이 가능하다.아래의 코드는 Mongo DB와 연동할때 자동으로 바인딩 할 수 있게 만드는 부분중 한부분이다. private Object bindDBObject (final Class iClass, final DBObject dbObject) { Object instance = null; try { instance = iClass.newInstance(); for (final Field field : iClass.getDeclaredFields()) { field.setAccessible(true); field.set(instance, dbObject.get(field.getName())); }//end for } catch.. 더보기