2015-04-03 150 views
1
public static String formulaCalcularRenda = "(Loja.getRendaFixa()*(1+super.getArea()/100)+super.getReceita()/100)"; 

@Override 
    public double calcularRenda(){ 
     return (Loja.getRendaFixa()*(1+super.getArea()/100)+super.getReceita()/100); 
    } 

我的主要目标是重用代码,同时作为用户自身顺序改变的公式。我以前曾尝试过类似的东西,但我无法成功,因为字符串有字母。转换此字符串返回双重

@Override 
     public double calcularRenda(){ 
      return Double.parseDouble(Loja.formulaCalcularRenda); 
     } 

有人可以帮我吗?

+0

总是很好用你工作的语言来标记你的问题;) – Madbreaks 2015-04-03 21:16:57

+1

你希望用户能够输入任意的Java代码并让你的程序执行它吗?这听起来不是一个好主意,我不确定用户是否会希望甚至无法为您的函数编写明智的Java ... – 2015-04-03 21:20:04

+1

即使用户能够输入语法正确的Java,仍然可以需要编写自己的Java解释器。你已经拥有了那么为什么要重塑?至少当我最终进入编译器设计领域时,这是我的想法。 – John 2015-04-03 21:22:11

回答

0

正如其他人在评论,这不是一件容易或明智的事情。但是,如果您致力于此任务,则对于表达式评估而言,脚本语言是更好的选择。脚本语言支持内置于Java中,并且相对易于使用。

Java javascript程序员指南将是一个很好的开始。它有一些例子,你应该能够适应你的需求。

+0

如果他们使用Java,EL可能是更好的选择。 – chrylis 2015-04-03 21:39:07

0

如果你仔细想一想,用户编写代码并没有多大意义。所以,在你看来,对我来说最好的办法是什么,而不是一遍又一遍地重复相同的代码?