2017-12-28 5 views
-4

angewendet werden, um diesen Problemfehler zu beheben: fehlerhafte Operandentypen für den binären Operator '*'?Operator '*' kann nicht auf 'int', 'java.lang.String'

dies ist mein Code:

int minimal = (Integer.parseInt(TextUtils.isEmpty(listData.get(position).getMinimal()) ? "0" : listData.get(position).getMinimal())) 
      *(TextUtils.isEmpty(listData.get(position).getQuantity()) ? "0" : listData.get(position).getQuantity()); 

dies der Fehler ist: Fehler: (80, 17) Fehler: schlechte Operandentypen für binären Operator '*'

erster Typen: int

zweiter Typ: String

Kann mir jemand helfen? Ich bin neu in Android Studio und das ist mein erstes Mal mit ihm zu arbeiten. Vielen Dank im Voraus für Ihre Zeit. :)

+5

Bitte schreiben Sie keinen solchen gewundenen Code. Es ist zu lang, um es zu lesen, und es ist zu komplex, es zu verstehen. Extrahiere in Variablen und du wirst finden, was das Problem ist. – Henry

+0

Bitte formatieren Sie den Code und teilen Sie den kompletten Fehler. –

Antwort

1

Ihr zweiter Operand ist immer String. Mach es so.

int minimal = Integer.parseInt(TextUtils.isEmpty(listData.get(position).getMinimal()) ? "0" : listData.get(position).getMinimal()) 
      *Integer.parseInt(TextUtils.isEmpty(listData.get(position).getQuantity()) ? "0" : listData.get(position).getQuantity()); 

seine komplexe so können Sie einfach primitive Variable verwenden kann leicht lesbar sein.

int opA=Integer.parseInt(TextUtils.isEmpty(listData.get(position).getMinimal()) ? "0" : listData.get(position).getMinimal()); 
    int opB=Integer.parseInt(TextUtils.isEmpty(listData.get(position).getQuantity()) ? "0" : listData.get(position).getQuantity()); 
    int minimal=opA*opB; 
Verwandte Themen