클래스 - Java에서 리플렉션으로 일반 메소드 호출




자바 method 클래스 (2)

에드윈의 답변에서 주어진 포인트를 강조하기 위해, 우리가 사용하는 곳은 일반적인 타입으로 확장됩니다.

GenericHibernateDao<T extends Serializable>

, 및 방법

public T save( T entity ) {};

리플렉션을 사용하여 save 메서드를 호출하려면 Serializable 클래스를 사용해야합니다. 즉, 다음을 사용해야합니다.

Method method = GenericHibernateDao.class.getMethod(methodName, Serializable.class);

Object.class를 매개 변수로 사용하지 않습니다.

<T extends Serializable>

https://code.i-harness.com

어떻게 자바에서 반사하여 사용자 정의 일반 메서드를 호출?

class Person
{
  public <T> void print(T t)
   {
      System.out.println(t.toString());
   }
}

이것은 나를 위해 작동합니다.

Method method = Person.class.getMethod("print", Object.class);

method.invoke(new Person(), "this is a string");
method.invoke(new Person(), 273);
method.invoke(new Person(), new Object());

인쇄

this is a string
273
[email protected]

물론이 이론은 @ Edwin의 대답 에서 아름답게 설명 됩니다.







reflection