2010-08-17 4 views
0

나는 리플렉션을 전혀 사용할 수없는 상황에 처해있다. 말할 필요도없이 클래스를 동적으로 생성해야합니다. 거기에 뭔가 이미 이미 가상 자바 객체를 만들 수 있습니다 밖으로 만들었습니다. 내 머리 꼭대기에서 자바 가상 객체가 될 것입니다 ... 객체에 대한 문자열지도, 문자열은 이름이고 객체는 객체 자체입니다. 물론 프라이버시를 포함하는 다른 맵과 같이 거기에 모든 종류의 메타 데이터를 추가 할 수 있습니다. 이와 같은 것이 있습니까? 또한, 위에서 설명한 (맵 등을 사용하여) 방법을 수행하는 대신 바이너리 형식으로 클래스를 작성하면 어떨까요?자바 가상 객체

+1

왜 당신이 쓴 것을 그냥 할 수 없습니까? – danben

+1

리플렉션을 사용할 수없는 이유는 무엇입니까? 숙제가 있니? 환경과의 제약 때문에 –

+1

. 모든 권한이 설정되지 않은 JNLP 파일을 사용하고 있습니다. 이것은 숙제가 아닙니다. 동료는 개미를 통해 작업을 구현했습니다. 이 스크립트가 빌드 스크립트를 편집 할 필요없이 해결 될 수 있는지 궁금했습니다. "왜 당신이 쓴 것을 그냥 할 수 없습니까?" 나는 할 수있다, 나는 다만 아이디어에 다른 사람에게서 약간 의견을 원했다. 이미 완료 되었다면 처음부터 다시 할 필요가 없습니다. – Boltimuss

답변

1

컴파일러 API를 사용하여 소스에서 컴파일 할 수 있습니다. javax.tools 패키지를 참조하십시오.

클래스 데이터의 바이트 배열에서 클래스를로드 할 수도 있습니다. java.lang ClassLoader를 참조하십시오.

하지만 왜 제안 하시겠습니까? Map<String,Object>이 있습니까?

+0

나는 그것에 대해 생각하고 있었지만, 다른 사람들이 생각한 것을 먼저 듣기를 원했습니다. 어떤 방법으로해야하는지 토론하고 있습니다. Map 접근 방식을 사용하거나 바이트 코드를 사용하여 클래스를 작성한 다음 그에 대한 참조를 전달해야합니다. 지도 방법이 더 좋은 방법 일 것이라고 생각합니다. 프라이버시 등의 다른 메타 데이터를 포함 할 수 있습니다. – Boltimuss

0

당신은 아파치 커먼즈 beanutils에서 Dynabean을 사용할 수 있습니다.

노멀 맵에 비해 어느 정도의 값을 제공 할 것인지 확실하지 않습니다.