Cómo crear un constructor que acepta símbolos, tales como: *, +, (), etc.

Jake Jackson:

Estoy tratando de pasar ciertos tipos de caracteres, como los de los títulos, a través de un constructor, y luego asignar una enumeración a ella.

Tengo una clase de enumeración que tiene tres valores: número, cadena, y el símbolo.

Tengo tres constructores:

(float x) {}
(String str){}
(Symbol value) {}

Cuando se pasa un flotador, asigno un 'tipo' variable para Type.STRING. Lo mismo ocurre con las cadenas, pero con Type.STRING.

¿Cómo puedo hacer esto durante varios símbolos (como los que en el título)? Cuando creo una instancia de entrada y tratar de pasar, por ejemplo, un carácter más (+), aparece el mensaje 'Error de sintaxis en el símbolo '+', eliminar este token'.

public class Entry{
    private Type type;

    public Entry(Type value) {
        this.type = Type.SYMBOL;
    }
}
malta:

En Java +es un operador . Sólo puede ser usado como parte de una expresión, no por sí mismo.

Sin embargo, puede pasar una cadena que contiene +la siguiente manera: "+"o utilizar una enumeración que representa diferentes operadores:

enum Operator {
    PLUS, MINUS;
}

Luego, su constructor puede aceptar tal una enumeración:

public Entry(Operator op) {
}

Otra opción es crear una función de "adición" que se pueden añadir dos elementos juntos, y pasar esa función al constructor. Sin embargo, eso es un poco más complicado y requiere saber qué tipo de cosas va a añadir:

BiFunction<MyObject, MyObject, MyObject> addition =  (a,b) -> {
    //implement a+b here;
    //return result;
}

A continuación, el constructor podría ser algo como esto:

public Entry(BiFunction<MyObject, MyObject, MyObject> func) {
}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=314965&siteId=1
Recomendado
Clasificación