java构造函数中的自动化数字字符串转换
问题描述:
我试图定义一个类表达式,它可以表示任何数学表达式,正如其名称所示。它接受一个字符串并使用它的信息将表达式存储在其字段中。java构造函数中的自动化数字字符串转换
所以它的构造应该是这样的:
public Expression(String expr)
{
SomeOperation(expr);
}
当我做这个类的一个实例,我希望能够给它的构造任何类型的变量或其序列,使构造函数将其转换成一个字符串。 例如,我希望能够写:的
Expression e1 = new Expression(aNumber*x + anInt*y)
代替
Expression e1 = new Expression("" + aNumber+"*x+" + anInt+"*y+")
其中x和y是不声明或初始化变量,但是符号被转换成字符串(aNumber和anInt被声明和初始化。)
所以我的问题是:我可以自动化连接数字和字符串的过程将构造函数转换为一个易于使用的构造函数,如上所示?
在此先感谢!
答
你有实际实现它,像:
public class Expression {
private final String expr;
public Expression(Object... args){
this.expr = Arrays.asList(args).stream().map(Object::toString).collect(Collectors.joining());
}
public String getExpr() {
return expr;
}
}
然后:
new Expression(aNumber, "*x + ", anInt, "*y");