2011-11-06 2 views
1

사용자가 실제 java 파일에서 [속성 및 메소드 추가/제거]를 수정할 수 있어야하는 시스템을 개발하려고합니다. 새로운 메소드/필드를 생성하기 위해 API가 제공하는 메소드가 있지만 필요하지 않은 메소드를 제거/제거 할 수있는 방법은 무엇입니까?속성 및 메소드를 추가/제거하려면 어떻게합니까?

나는

updatefile(file, newMethods, newAttributes) 
  • file은 그 방법과 특성을 필요로 제거 할 수정 될 것입니다 자바 파일입니다 방법을 만들고 싶어.

  • newMethods 지금

또한 가능하다

  • newAttributes 파일의 속성 될 파일의 ​​방법이 될 것이라고 newMethods의 일부 항목 == 원래의 방법 중 일부 항목있는 나는 것에 대한 수표가 필요합니다. newAttributes와 비슷합니다.

    어떻게이 작업을 수행 할 수 있습니까?

  • +2

    Java 클래스에 메소드와 속성을 추가하는 것을 프로그래밍이라고합니다. Eclipse, NetBeans 또는 IntelliJ를 제공하십시오 : 모든 IDE가 좋으며 Java 소스 파일에 속성과 메소드를 추가하는 것이 응용 프로그램보다 뛰어납니다. –

    답변

    1

    바이트 코드 조작 라이브러리가 필요합니다. bcel, cglib, asm, javassist를 확인하십시오.

    JBNizet에 대한 요구 사항이 약간 이상하게 보일 수도 있지만 동의합니다. 이미 그렇게하는 강력한 IDE가 있으며, 최종 사용자는 일반적으로 클래스 구조에 조응하지 않아야합니다.

    +0

    고맙습니다 ... Cn 그러면 실제로 –

    +0

    으로 돌아갑니다. 실제로 개발을 자동화하는 도구를 개발하려고합니다. 사용할 수있는 표준 클래스 집합이 있습니다. 시스템에 도입되는 새로운 클래스는 표준 클래스의 수정 일 수 있습니다. 따라서 표준 사이에서 newMethods 및 newAttributes를 선택하기위한 인터페이스를 제공하고자합니다. 물론 표준에 존재하지 않는 일부 메소드/속성을 추가해야하는 경우 수동으로 코드를 작성해야합니다. –

    +3

    그러면 재사용 가능하고 잘 문서화 된 클래스 및 메소드의 OO 라이브러리를 제공하면됩니다. OO 디자인, 상속, 구성 및 디자인 패턴은 가장 친한 친구입니다. 이것은 여전히 ​​프로그래밍 중이며 IDE는 여전히 최상의 도구입니다. –

    0

    아이디어는 JBoss forge 프로젝트와 비슷합니다.

    메소드를 제거 할 수있는 가능성은 Java 스펙에 선언 된 Java 메소드의 서명과 메소드 리턴 유형을 기반으로해야한다고 생각합니다.

    예 : methodRemove (파일 파일, String returnType, String methodName, String [] methodParametersTypes)는 파일에 클래스가 하나 뿐인 경우 파일에서 제거 할 적절한 메서드를 참조합니다.

    +0

    이고 methodAttributes에는 속성 유형이 있습니다. –

    +0

    고맙습니다. 도움이되었습니다. –

    +0

    고맙습니다. 고맙습니다. 내 대답에 위쪽 화살표를 사용하면 도움이됩니다. :) –

    관련 문제