Java 基于编译时的枚举获取特定类

Java 基于编译时的枚举获取特定类,java,Java,我正在尝试根据枚举类型将类解析为特定类型 公共枚举管道类型{ A(X.class,XConfig.class), B(Y类,Y配置类); 公共最终类管线; 公共最终类pipelineConfigClazz; 管道类型(类别pipelineClass, 类pipelineConfigClazz){ this.pipelineClazz=pipelineClass; this.pipelineConfigClazz=pipelineConfigClazz; } 公共对象getPipelineClas

我正在尝试根据枚举类型将类解析为特定类型

公共枚举管道类型{
A(X.class,XConfig.class),
B(Y类,Y配置类);
公共最终类管线;
公共最终类pipelineConfigClazz;
管道类型(类别pipelineClass,
类pipelineConfigClazz){
this.pipelineClazz=pipelineClass;
this.pipelineConfigClazz=pipelineConfigClazz;
}
公共对象getPipelineClassObject(){
试一试{
返回此.pipelineClazz.newInstance();//是否有方法基于Enum PipelineType.get X和XConfig对象获取指定的类对象。
}捕获(实例化异常|非法访问异常e){
e、 printStackTrace();
}
返回null;
}
}
我在这里做错了什么吗?

向构造函数添加一个供应商

enum PipelineType {
 X(() -> new XType()),
 Y(() -> new YType());
 Supplier<?> create;
 private PipelineType(Supplier<?> creator) {
  create = creator;
 }
 public <T> T createPipelineObject() {
  return (T)create.get();
 }
}
enum管道类型{
X(()->new XType()),
Y(()->新YType());
供应商创建;
专用管道类型(供应商创建者){
创造=创造者;
}
公共T createPipelineObject(){
return(T)create.get();
}
}
将供应商添加到构造函数中

enum PipelineType {
 X(() -> new XType()),
 Y(() -> new YType());
 Supplier<?> create;
 private PipelineType(Supplier<?> creator) {
  create = creator;
 }
 public <T> T createPipelineObject() {
  return (T)create.get();
 }
}
enum管道类型{
X(()->new XType()),
Y(()->新YType());
供应商创建;
专用管道类型(供应商创建者){
创造=创造者;
}
公共T createPipelineObject(){
return(T)create.get();
}
}

我仍然必须强制转换它才能正确访问成员变量
.newInstance()
还提供了对象。我感兴趣的是它是否可以在编译时解析;无法使用泛型参数化枚举。我曾经在计划的功能列表中看到过它,但我不认为它已经包含在最新的Java版本中。。谢谢。我仍然需要将其转换为访问正确的成员变量
.newInstance()
还提供了对象。我感兴趣的是它是否可以在编译时解析;无法使用泛型参数化枚举。我曾经在计划的功能列表中看到过它,但我不认为它已经包含在最新的Java版本中。。非常感谢。