javassist를 사용하여 문자열 변수의 이름을 동적으로 바꾸는 방법은 무엇입니까?

user2966021

나는라는 이름의 클래스가 Sample나는 변수의 이름을 변경해야 할 messageIDNameID해당 getter 및 setter도 업데이트되도록을.

public class Sample{

    String messageID;

    public String getMessageID() {
        return MessageID;
    }

    public void setMessageID(String messageID) {
        MessageID = messageID;
    }
}
라크 와트

Javassist를 사용하면 이전 필드 이름에서 새 필드 이름으로 필드 이름과 모든 참조변경할있습니다 .

  ClassPool classpool = ClassPool.getDefault();
  CtClass ctClass = classpool.get(Sample.class.getName());
  CtField field = ctClass.getField("messageID");
  CodeConverter codeConverter = new CodeConverter();
  codeConverter.redirectFieldAccess(field, ctClass, "NameID");
  ctClass.instrument(codeConverter);
  field.setName("NameID");

사용할 방법 Javassist모르는 경우 여기 에서이 자습서를 읽어야합니다. 모든 필드 참조를 "다시 연결" CodeConverter하는 방법은 에서 CtField이름이 지정된 필드에 대한 참조에 대한 필드에 대한 모든 참조를 대체 하는 a 사용하여 수행 NameID됩니다 ctClass. 이 작업은 필드 이름을로 변경하기 전에 수행해야합니다 NameID.

그러나 모든 참조는 업데이트되지만 set / get 메서드 이름은 여전히 getMessageIDsetMessageID. ctClass다음 과 같은 참조를 사용하여 쉽게 변경할 수 있습니다 .

CtMethod getter = ctClass.getDeclaredMethod("getMessageID");
getter.setName("getNameId");
CtMethod setter = ctClass.getDeclaredMethod("setMessageID");
setter.setName("setNameId");

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

문자열을 사용하여 이름으로 Python 함수를 동적으로 호출하는 방법은 무엇입니까?

분류에서Dev

sed를 사용하여 문자열 내의 문자열을 바꾸는 방법은 무엇입니까?

분류에서Dev

.htaccess를 사용하여 쿼리 문자열의 첫 번째 매개 변수 이름을 바꾸는 방법은 무엇입니까?

분류에서Dev

R을 사용하여 변수로 열 이름을 바꾸는 방법은 무엇입니까?

분류에서Dev

Angular2 +를 사용하여 데이터 테이블의 모든 열을 동적으로 바꾸는 방법은 무엇입니까?

분류에서Dev

열 이름을 얻고 문자열 변수를 동적으로 만드는 방법은 무엇입니까?

분류에서Dev

PHP를 사용하여 문자열을 두 개의 변수로 분할하는 방법은 무엇입니까?

분류에서Dev

PHP를 사용하여 문자열을 두 개의 변수로 분할하는 방법은 무엇입니까?

분류에서Dev

javascript를 사용하여 사전 목록의 숫자 문자열을 정수로 바꾸는 방법은 무엇입니까?

분류에서Dev

문자열을 사용하여 변수 이름으로 버튼을 얻는 방법은 무엇입니까?

분류에서Dev

정규식 수량자를 사용하여 zmv로 여러 파일의 이름을 바꾸는 방법은 무엇입니까?

분류에서Dev

해시의 문자열 값을 사용하여 파일 이름을 바꾸는 방법은 무엇입니까?

분류에서Dev

쉘 명령을 사용하여 밑줄로 파일 이름 묶음의 % 인코딩 문자를 바꾸는 방법은 무엇입니까?

분류에서Dev

sed를 사용하여 문자열을 범주로 바꾸는 방법은 무엇입니까?

분류에서Dev

jquery를 사용하여 문자열을 동적으로 추가하는 방법은 무엇입니까?

분류에서Dev

문자를 바꾸고 여러 파일의 이름을 바꾸는 방법은 무엇입니까?

분류에서Dev

문장의 문자열을 적절한 사전 값으로 바꾸는 방법은 무엇입니까?

분류에서Dev

문자열 대체를 사용하여 Linux에서 디렉토리의 모든 파일 이름을 바꾸는 방법은 무엇입니까?

분류에서Dev

rollupjs를 사용하여 매개 변수에 의해 이름이 정의 된 모듈을 동적으로 가져 오는 방법은 무엇입니까?

분류에서Dev

stoi ()를 사용하여 문자열을 정수로 변환하는 방법은 무엇입니까?

분류에서Dev

sed를 사용하여 특정 줄을 문자열 변수로 대체하는 방법은 무엇입니까?

분류에서Dev

일치하는 문자열의 문자 그룹을 기반으로 문자열의 일부를 바꾸는 방법은 무엇입니까?

분류에서Dev

Javascript를 사용하여 문자열을 하이퍼 링크로 변환하는 방법은 무엇입니까?

분류에서Dev

SQL Server : 열 이름을 동적 변수의 값으로 설정하는 방법은 무엇입니까?

분류에서Dev

인쇄 출력을 "3 개 이상의 인수"를 사용하여 변수 / 문자열로 변환하는 방법은 무엇입니까? (파이썬 3)

분류에서Dev

Bash를 사용하여 덮어 쓰지 않고 점진적으로 로그 파일 배치의 이름을 바꾸는 방법은 무엇입니까?

분류에서Dev

IResourceChangeListener를 사용하여 파일 이름 바꾸기를 감지하고 EditorPart 이름을 동적으로 설정하는 방법은 무엇입니까?

분류에서Dev

reqex를 사용하여 두 특정 문자 사이의 모든 발생을 연관된 문자 코드로 바꾸는 방법은 무엇입니까?

분류에서Dev

루프 내에서 문자열을 변수 이름으로 바꾸는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    문자열을 사용하여 이름으로 Python 함수를 동적으로 호출하는 방법은 무엇입니까?

  2. 2

    sed를 사용하여 문자열 내의 문자열을 바꾸는 방법은 무엇입니까?

  3. 3

    .htaccess를 사용하여 쿼리 문자열의 첫 번째 매개 변수 이름을 바꾸는 방법은 무엇입니까?

  4. 4

    R을 사용하여 변수로 열 이름을 바꾸는 방법은 무엇입니까?

  5. 5

    Angular2 +를 사용하여 데이터 테이블의 모든 열을 동적으로 바꾸는 방법은 무엇입니까?

  6. 6

    열 이름을 얻고 문자열 변수를 동적으로 만드는 방법은 무엇입니까?

  7. 7

    PHP를 사용하여 문자열을 두 개의 변수로 분할하는 방법은 무엇입니까?

  8. 8

    PHP를 사용하여 문자열을 두 개의 변수로 분할하는 방법은 무엇입니까?

  9. 9

    javascript를 사용하여 사전 목록의 숫자 문자열을 정수로 바꾸는 방법은 무엇입니까?

  10. 10

    문자열을 사용하여 변수 이름으로 버튼을 얻는 방법은 무엇입니까?

  11. 11

    정규식 수량자를 사용하여 zmv로 여러 파일의 이름을 바꾸는 방법은 무엇입니까?

  12. 12

    해시의 문자열 값을 사용하여 파일 이름을 바꾸는 방법은 무엇입니까?

  13. 13

    쉘 명령을 사용하여 밑줄로 파일 이름 묶음의 % 인코딩 문자를 바꾸는 방법은 무엇입니까?

  14. 14

    sed를 사용하여 문자열을 범주로 바꾸는 방법은 무엇입니까?

  15. 15

    jquery를 사용하여 문자열을 동적으로 추가하는 방법은 무엇입니까?

  16. 16

    문자를 바꾸고 여러 파일의 이름을 바꾸는 방법은 무엇입니까?

  17. 17

    문장의 문자열을 적절한 사전 값으로 바꾸는 방법은 무엇입니까?

  18. 18

    문자열 대체를 사용하여 Linux에서 디렉토리의 모든 파일 이름을 바꾸는 방법은 무엇입니까?

  19. 19

    rollupjs를 사용하여 매개 변수에 의해 이름이 정의 된 모듈을 동적으로 가져 오는 방법은 무엇입니까?

  20. 20

    stoi ()를 사용하여 문자열을 정수로 변환하는 방법은 무엇입니까?

  21. 21

    sed를 사용하여 특정 줄을 문자열 변수로 대체하는 방법은 무엇입니까?

  22. 22

    일치하는 문자열의 문자 그룹을 기반으로 문자열의 일부를 바꾸는 방법은 무엇입니까?

  23. 23

    Javascript를 사용하여 문자열을 하이퍼 링크로 변환하는 방법은 무엇입니까?

  24. 24

    SQL Server : 열 이름을 동적 변수의 값으로 설정하는 방법은 무엇입니까?

  25. 25

    인쇄 출력을 "3 개 이상의 인수"를 사용하여 변수 / 문자열로 변환하는 방법은 무엇입니까? (파이썬 3)

  26. 26

    Bash를 사용하여 덮어 쓰지 않고 점진적으로 로그 파일 배치의 이름을 바꾸는 방법은 무엇입니까?

  27. 27

    IResourceChangeListener를 사용하여 파일 이름 바꾸기를 감지하고 EditorPart 이름을 동적으로 설정하는 방법은 무엇입니까?

  28. 28

    reqex를 사용하여 두 특정 문자 사이의 모든 발생을 연관된 문자 코드로 바꾸는 방법은 무엇입니까?

  29. 29

    루프 내에서 문자열을 변수 이름으로 바꾸는 방법은 무엇입니까?

뜨겁다태그

보관