키워드 중심 자동화 프레임 워크를 구현했습니다. 모든 키워드를 함수/메소드의 형태로 정의했습니다 (각 키워드는 메소드로, 100 + Keywords 즉 메소드가 있습니다).문자열과 동일한 클래스를 호출하는 방법
Class<?> c = Class.forName("class name");
Method method = c.getDeclaredMethod ("method name", parameterTypes)
method.invoke (objectToInvokeOn, params)
위 Java Reflation을 사용하여 String과 동일한 메소드를 호출 할 수 있습니다.
이제 구현을 다음과 같이 변경해야합니다. 내 모든 기능을 개별 클래스 (각 클래스의 각 기능)로 변환해야합니다. 그래서 문자열과 같은 클래스 이름을 호출하는 방법을 찾고 있어요. 이걸 도와주세요.
내가 아래에서와 같은 사용 전략 패턴을 구현하기 위해 노력하고 있습니다 :
******************** 1 단계의 *******를 ************** // Strategy.java (인터페이스)
공용 인터페이스 전략 {
public void executeKeyword();
}
******** ************ Step2 **************** // Add.java
공용 클래스 추가는 전략을 구현 {
public void executeKeyword()
{
System.out.println("----Inside the Addition----");
}
}
//Sub.java는
공용 클래스 하위는 전략 {
public void executeKeyword()
{
System.out.println("----Inside the substraction----");
}
}
를 구현 // Multi.java
공용 클래스 멀티 구현 전략 {
public void executeKeyword()
{
System.out.println("----Inside the multiplication----");
}
}
******************** 3 단계 ******** ***********************
공용 클래스 컨텍스트 {
private Strategy strategy;
public Context(Strategy str)
{
this.strategy=str;
}
public void processKeyword()
{
strategy.executeKeyword();{
}
}
}
******************** 4 단계 ***********
공용 클래스 데모 {
public static void main(String[] args) throws ClassNotFoundException {
Context ctx=new Context(new Add());
//Context ctx=new Context(new Sub());
//Context ctx=new Context(new Multi());
ctx.processKeyword();
}
}
이 있습니까 Context Object에서 클래스 이름 (Add, Sub, Mulit)을 동적으로 전달할 수있는 모든 옵션.
Context ctx = new Context (새 Add());> 여기에 Add, 다음 번에 Sub, then Multi를 전달해야합니다. 어떻게하면 단일 cxt 객체를 유지함으로써이를 달성 할 수 있습니다.
클래스 > c = Class.forName ("클래스 이름"); ' –
스택 오버플로에 오신 것을 환영합니다! [둘러보기]를 둘러보고 [도움말], 특히 [* 좋은 질문을하는 방법 *] (/ help/how-to-ask)을 읽으십시오. 질문이 두려운 것 같습니다. 전혀 분명하지 않다. 클래스를 이름으로로드하는 방법과 이름으로 메소드를 찾는 방법을 분명히 알고 있습니다. 질문이 뭐니? (친구 나 동료가 영어로 도움을 주면 도움이 될 것입니다. 완벽한 영어는 ** 필요하지 않지만 ** 우리는 질문을 이해할 수 있어야합니다. 이것은 모욕적 인 것이 아니며, 영어로 많이 작성합니다 ** ** 다른 언어보다 더 낫다.) –
Thanks Marko, 내 질문을 업데이트했는지 확인해주십시오. 이것 좀 도와주세요. – Yuvaraja