I know I was not clear with my question but what I am trying to do here is use enums to convert Temperature Units and all I know that enums have a fixed value so for example Converting from Fahrenheit to Celsius needs the input for the calculation to work but I cant use the Input which is in the main activity so I tried to declare an input with its setter and use the class Convert2 to set the input in the main activity(something like that c.setInput(input)) and getting its value to be able to use it in the class thinking that if you get the value you can add it in the constant then make the return value at the end equals to 1 multiplied by the multiplier which is = to the constant but that did not work and I am stuck here since I am new to enums. hope you will understand what I mean in the code.
public class Convert2 {
private final double multiplier;
private double input;
public void setInput(double input) {
this.input = input;
}
public double getInput() {
return input;
}
public enum Unit2 {
Fahrenheit,
Celsius,
Kelvin,
;
public static Unit2 from(String text) {
if (text != null) {
for (Convert2.Unit2 unit2 : Convert2.Unit2.values()) {
if (text.equalsIgnoreCase(unit2.toString())) {
return unit2;
}
}
}
throw new IllegalArgumentException("Cannot find a value for " + text);
}
}
public Convert2(Convert2.Unit2 from, Convert2.Unit2 to) {
double constant = 1;
switch (from) {
case Fahrenheit:
if (to == Convert2.Unit2.Celsius) {
constant = (input - 32)
* 1.8;///here you can see how the calculation work as it needs the input value///
} else if (to == Convert2.Unit2.Kelvin) {
constant = (5 / 9) + 273.15 - 32;
}
break;
}
multiplier = constant;
}
public double convert2(double input) {
return (input - input + 1)
* multiplier;///(input-input+1) gives 1 multiplied by the multiplier gives the constant value///
}
}