我有这个场景......
public enum ParametrosAplicacion{
BOOLEAN("BOOLEANO", "Valor verdadero o falso", Boolean.class, false),
FILE("PROPIEDAD", "DESCRIPCION", File.class, new File("ruta"));
private final String propiedad, descripcion;
private final Class<?> clase;
private Object valor;
private ParametrosAplicacion(String p, String d, Class<?> c, Object v){
this.propiedad=p;
this.descripcion=d;
this.clase=c;
this.valor=v;
}
public Class<?> getClase(){
return this.clase;
}
public <V> V getValor(Class<V> clase){
return clase.cast(valor);
}
public static void main(String[] args){
Boolean sw=ParametrosAplicacion.BOOLEAN.getValor(Boolean.class);
if(sw){
System.out.println(sw.getClass().getSimpleName());
}else{
File file=ParametrosAplicacion.FILE.getValor(File.class);
System.out.println(file.getClass().getSimpleName());
}
}
}
我找到某种方式以这种方式获得价值......
Boolean sw=ParametrosAplicacion.BOOLEAN.getValor();
有点像......
public <V> V getValor(){
return this.clase.cast(this.valor); // not compile!!!
}
当然我需要跳过任何未经检查的警告,所以......
public <V> V getValor(){
return (V)(valor);
}
不是一个好的解决方案......
非常感谢...