Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将at开关语句的字符串转换为枚举?_Java_Enums_Switch Statement_Command Line Arguments - Fatal编程技术网

Java 如何将at开关语句的字符串转换为枚举?

Java 如何将at开关语句的字符串转换为枚举?,java,enums,switch-statement,command-line-arguments,Java,Enums,Switch Statement,Command Line Arguments,我有以下代码,我希望接受命令行args fx“12 EUR”进行转换: public class Main { enum Currency {EUR, USD, GBP,INVALID_CURRENCY; static final float C_EUR_TO_DKK_RATE = (float) 7.44; static final float C_USD_TO_DKK_RATE = (float) 5.11; static final float C_GBP_TO_

我有以下代码,我希望接受命令行args fx“12 EUR”进行转换:

public class Main {

   enum Currency {EUR, USD, GBP,INVALID_CURRENCY;
   static final float C_EUR_TO_DKK_RATE = (float) 7.44;
   static final float C_USD_TO_DKK_RATE = (float) 5.11;
   static final float C_GBP_TO_DKK_RATE = (float) 8.44;
   static float result = 0;
   static int amount = 0;
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // Q1

        if (args.length == 2) {
            amount = Integer.parseInt(args[0]);
            String currencyIn = args[1].toString();

            Currency enumConversion = currencyIn; //**<---- HERE**
            switch (enumConversion) {
                case EUR:
                    result = amount * C_EUR_TO_DKK_RATE;
                    break;
                case USD:
                    result = amount * C_USD_TO_DKK_RATE;
                    break;
                case GBP:
                    result = amount * C_GBP_TO_DKK_RATE;
                    break;
                default:
                    result = 0;
                    break;
            }
            System.out.println((float) amount + " " + enumConversion + " converts to "
                + Math.round(result*100.0)/100.0 + " DKK");


        } else {
            System.out.println("Invalid arguments!");
            System.exit(1);
        }
    }

}
   }
公共类主{
枚举货币{欧元、美元、英镑、无效的欧元;
静态最终浮动汇率C欧元兑丹麦克朗汇率=(浮动汇率)7.44;
静态最终浮动汇率C_美元兑丹麦克朗汇率=(浮动)5.11;
静态最终浮动C_英镑兑DKK_汇率=(浮动)8.44;
静态浮点结果=0;
静态整数金额=0;
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
//Q1
如果(args.length==2){
amount=Integer.parseInt(args[0]);
字符串currencyIn=args[1]。toString();
Currency enumConversion=currencyIn;//**从中,有一个方法可用于执行此操作

static <T extends Enum<T>> T valueOf(Class<T> enumType, String name) 
static T valueOf(类枚举类型,字符串名称)

Currency enumConversion=Currency.valueOf(currencyIn);//**从中,可以使用一个方法来执行此操作

static <T extends Enum<T>> T valueOf(Class<T> enumType, String name) 
static T valueOf(类枚举类型,字符串名称)

Currency enumConversion=Currency.valueOf(currencyIn);//**
public Currency fromString(String s){
  try
  {
    return Currency.valueOf(s)
  }
  catch(IllegalArgumentException e)
  { 
    return null;
  }
}