Java 如何在android中映射唯一的数字和类
假设我有一个具有整数参数(id)的函数,在函数中我想创建一个与(id)相关联的类对象,我不想使用(if-else)语句,这是如何实现的Java 如何在android中映射唯一的数字和类,java,android,class,Java,Android,Class,假设我有一个具有整数参数(id)的函数,在函数中我想创建一个与(id)相关联的类对象,我不想使用(if-else)语句,这是如何实现的 注意,我不能使用类名作为函数的参数,因为我使用Proguard 在您的情况下,您可以尝试以下方法: interface Factory { Object make(); } class Foo { } class Bar { } public static void main(String... args) { Map<Integer
注意,我不能使用类名作为函数的参数,因为我使用Proguard 在您的情况下,您可以尝试以下方法:
interface Factory {
Object make();
}
class Foo {
}
class Bar {
}
public static void main(String... args) {
Map<Integer, Factory> mapping = new HashMap<>();
mapping.put(42, new Factory() {
@Override
public Object make() {
return new Foo();
}
});
mapping.put(9001, new Factory() {
@Override
public Object make() {
return new Bar();
}
});
int someNumber = (int) (Math.random() * 10000);
Factory factory = mapping.get(someNumber);
Object result;
if (factory != null) {
result = factory.make();
}
}
接口工厂{
对象make();
}
福班{
}
分类栏{
}
公共静态void main(字符串…参数){
Map mapping=newhashmap();
mapping.put(42,新工厂(){
@凌驾
公共对象生成(){
返回新的Foo();
}
});
映射。放置(9001,新工厂(){
@凌驾
公共对象生成(){
返回新条();
}
});
int someNumber=(int)(Math.random()*10000);
Factory=mapping.get(someNumber);
客观结果;
如果(工厂!=null){
结果=工厂制造();
}
}
核心是一个
映射
而不是一个开关
,但是如果类的构造函数有输入参数呢?@MHDShaker可能通过将它们添加到make()
方法中来实现