Java 在运行时获取枚举时,使用枚举类中的方法

Java 在运行时获取枚举时,使用枚举类中的方法,java,enums,Java,Enums,我有一节课 public class AT{ public Map getMap(){ Map<String,Class> map = new HashMap<>(); map.put("name",AT.A.class); map.put("name",AT.B.class); return map; } public enum A {; a,b,c,d;

我有一节课

public class AT{
    public Map getMap(){
        Map<String,Class> map = new HashMap<>(); 
        map.put("name",AT.A.class); 
        map.put("name",AT.B.class);
        return map;
    }

    public enum A {;
        a,b,c,d;
        public static String getTableName() {
            return "table_nameA" ;
        }
    }
    public enum B {;
        e,f,g,h;
        public static String getTableName() {
            return "table_nameB" ;
        }
    }
}
但是我无法访问函数
getTableName

System.out.println( map.get(s).getTableName() ); //want to use this but doesn't work.

让每个枚举实现一个接口

这包括:

import java.util.*;
interface TableName {
    String get();
}
class AT {
    public Map<String,Class> getMap() {
        Map<String,Class> map=new HashMap<>();
        map.put("name",AT.A.class);
        map.put("name",AT.B.class);
        return map;
    }
    public enum A implements TableName {
        a,b,c,d;
        public String get() {
            return "table_nameA";
        }
    }
    public enum B implements TableName {
        e,f,g,h;
        public String get() {
            return "table_nameB";
        }
    }
}
import java.util.*;
接口表名{
字符串get();
}
上课时间{
公共地图getMap(){
Map Map=newhashmap();
map.put(“name”,AT.A.class);
地图放置(“名称”,AT.B.class);
返回图;
}
公共枚举实现表名{
a、 b,c,d;
公共字符串get(){
返回“table_nameA”;
}
}
公共枚举B实现了TableName{
e、 f,g,h;
公共字符串get(){
返回“table_nameB”;
}
}
}

让每个枚举实现一个接口

这包括:

import java.util.*;
interface TableName {
    String get();
}
class AT {
    public Map<String,Class> getMap() {
        Map<String,Class> map=new HashMap<>();
        map.put("name",AT.A.class);
        map.put("name",AT.B.class);
        return map;
    }
    public enum A implements TableName {
        a,b,c,d;
        public String get() {
            return "table_nameA";
        }
    }
    public enum B implements TableName {
        e,f,g,h;
        public String get() {
            return "table_nameB";
        }
    }
}
import java.util.*;
接口表名{
字符串get();
}
上课时间{
公共地图getMap(){
Map Map=newhashmap();
map.put(“name”,AT.A.class);
地图放置(“名称”,AT.B.class);
返回图;
}
公共枚举实现表名{
a、 b,c,d;
公共字符串get(){
返回“table_nameA”;
}
}
公共枚举B实现了TableName{
e、 f,g,h;
公共字符串get(){
返回“table_nameB”;
}
}
}

你认为
课程是什么?你为什么这么认为?你的
AT
类(如图所示)无法编译。A是一个枚举类,对吗?@PM77-1是的,我在那里犯了一个错误,现在它被纠正了。你能告诉我如何使这种方法起作用吗。仍然无法编译。你为什么不试试呢?你认为
Class
是什么?你为什么这么认为?你的
AT
类(如图所示)无法编译。A是一个枚举类,对吗?@PM77-1是的,我在那里犯了一个错误,现在它被纠正了。你能告诉我如何使这种方法起作用吗。仍然无法编译。你为什么不试试呢?