2015-02-05 5 views
-1

java에서 문자열을 condtion으로 만들 수있는 방법이 있습니까?자바에서 문자열을 조건으로 만드는 방법

샘플

class A { 
    public static void main(String args[]) { 

     B b = new B(10, 20); 
     b.setCondition("val1>val2"); 
    } 
} 

class B { 
    int val1 = 0; 
    int val2 = 0; 

    public B(int v1, int v2) { 
     val1 = v1; 
     val2 = v2; 
    } 

    public void setCondition(String condition){ 
    //the string should be evaluated as conditon like below. 
    if(condition) -> if(val1>val2) 

    } 
} 

아래에 표시된다이 자바 가능성이다. 감사합니다.

+0

아니요, 'if'에 'true'또는 'false'로 평가되는 문장이 포함되어야하며 문자열이 아니어야합니다. – Maroun

+2

가능한 [Java에 eval() 함수가 있습니까?] (http://stackoverflow.com/questions/2605032/is-there-an-eval-function-in-java) – Jens

답변

0

Java 코드를 컴파일해야하므로 사용자 고유의 구문 분석기를 구현해야합니다. PHP 또는 다른 스크립팅 언어가 제공하는 것과 같은 evaluate() 메소드가 없습니다. if 문이 true 또는 false에 즉, boolean으로 평가해야합니다 내부

0

무엇이든간에이다.

String 형식으로 임의의 조건을 전달하려면 String에 대한 구문 분석기를 정의해야합니다.

실제로 레코드를 의심하는 경우 생성자 인수로 String을 사용하고 두 개의 정수 값을 계산하여 boolean을 반환하는 클래스를 정의하는 것이 좋습니다. 예 :

class Evaluator{ 
    public Evaluator(String condition){ 
    // parse condition 
    } 
    public boolean evaluate(int v1, int v2){ 
    // return true if condition is satisfied, false otherwise 
    } 
} 
관련 문제