2012-03-07 2 views
3

속성 파일을 읽고 거기에서 pojo를 만들고 싶습니다. 여기서 속성 키는 getters와 setter가있는 인스턴스 변수입니다. 속성 값은 인스턴스 변수의 데이터 유형입니다. 입력이 작업을 수행 할 수있는 가장 쉬운 방법이 무엇인지자바 포조를 생성하는 방법

package com.temp; 
import java.lang.String; 
class Temp{ 
    private String name 

    //getters and setters 
} 

것이

className=Temp 
packageName=com.temp 
name=java.lang.String 

출력과 같은 것입니다. 파일을 만들어서 거기에 쓰는 것이 더 낫습니다.

+1

속성 파일을 구문 분석하고 텍스트 파일 .java를 만들고 구문 분석 결과를 작성하십시오. – vulkanino

+0

속성 파일 일 필요가없는 경우 http://stackoverflow.com/questions/4787049/simple-code-generation을 참조하십시오. – smp7d

+2

* 클래스 *를 만들고 싶지 않은 것 같습니다. 객체 인스턴스 (Plain Old Java Object라는 용어에 의해 암시되는). – maerics

답변

2

나는 한 번 Apache Velocity을 사용하여 Java 파일을 생성 했으므로 살펴볼 필요가 있습니다.

요약하면 파일을 템플릿으로 만든 다음 원하는 파일을 생성하는 데 사용합니다.

+0

전적으로이 접근 방식에 동의합니다. Apache Velocity는 이것이 완벽 할 것처럼 보인다. 템플릿의 출력을 파일에 씁니다. – aglassman

1

Java Reflection은 특히 비행 중에 개체를 인스턴스화하기위한 것입니다. 성능에 대해 염두에 두십시오.

반사는 일반적으로 Java 가상 컴퓨터에서 실행되는 응용 프로그램의 런타임 동작을 검사하거나 수정할 수 있어야하는 프로그램에서 사용됩니다. 이 기능은 상대적으로 고급 기능이며 언어의 기본 사항을 철저히 파악한 개발자 만 사용해야합니다. 이러한주의를 염두에두고 리플렉션은 강력한 기술이며 응용 프로그램이 불가능한 작업을 수행 할 수있게 해줍니다.

+0

+1 : 성능이 저하 될 가능성이 예상보다 높습니다. 즉 수 마이크로 초이다. –

+0

나는 이것이 OP가 묻는 것입니다. – vulkanino

+0

모호합니다. 메타 데이터에서 Java 파일을 생성하는 경우 반사는 쓸모가 없습니다. – Nasir

1
Properties properties = new Properties(); 
try 
{ 
    FileWriter outFile = new FileWriter("filename.java"); 
    properties.load(new FileInputStream("filename.properties")); 

    outFile.print("package "); 
    outFile.println(properties.getProperty("packageName")); 

    outFile.print("import "); 
    outFile.println(properties.getProperty("name")); 

    outFile.print("public class "); 
    outFile.println(properties.getProperty("className")); 
    outFile.println("{"); 
    // ... 
    outFile.println("}"); 

    outFile.close(); 
} 
catch (IOException e) 
{ 
    // handle the error 
} 
관련 문제