数据库java操作符是如何工作的?
因此,我试图在simpleDB数据库中实现加法运算符。我已经完成了大部分,但我不知道如何添加这两个部分。这将用于数据库的查询,我希望能够添加左侧和右侧。什么java方法可以用来实现这一点?因为在simpleDB中没有加法运算符
这就是我实施<;接线员
if (operator.equals("<") && lhsval.compareTo(rhsval) < 0) {
return true;
}
就像现在我有
Constant lhsval = lhs.evaluate(s);
Constant rhsval = rhs.evaluate(s);
if (operator.equals("+")) {
// return ;
}
我有左手边和右手边 因此,当查询看到+号时,它将把em加在一起并返回答案。但我不知道怎么做。当我实现小于运算符时,我使用comprateTo方法,当我实现相等运算符时,我使用相等方法。我不知道加法运算符可以使用什么。顺便说一句,这是使用java
常量类
package simpledb.query;
/**
* The interface that denotes values stored in the database.
* @author Edward Sciore
*/
public interface Constant extends Comparable<Constant> {
/**
* Returns the Java object corresponding to this constant.
* @return the Java value of the constant
*/
public Object asJavaVal();
}
# 1 楼答案
我认为,最好检查lhsval和rhsval的类型。之后,您可以通过asJavaVal获取已知类型的值:
# 2 楼答案
由于类型常量实现了Comparable,因此实现了一个关系运算符,如A低于B
如果您想要实现一个关系运算符,比如a+B,那么类型常量必须实现一个类型,比如Addable?我想是的,必须这样
可添加接口具有以下契约:
您必须决定add运算符的工作方式(连接、求和,取决于常量子类型,…)
问题更新后编辑
一个简单的实现是使用方法
Object asJavaVal();
,如下所示: