62,614
社区成员
发帖
与我相关
我的任务
分享
Phone ph = Phone.get("A2");
ph.action();
public class PhoneTest {
public static void main(String[] args) {
Phone ph = Phone.get("PhoneA2");
ph.action();
}
}
abstract class Phone {
static Phone get(String clazz) {
try {
return (Phone) Class.forName(clazz).newInstance();
} catch (Exception e) {
}
return null;
}
void action() {
System.out.println(this.getClass());
}
}
class PhoneA2 extends Phone {
}
public class PhoneTest {
public static void main(String[] args) {
Phone ph = Phone.get(PhoneA2.class);
ph.action();
}
}
abstract class Phone {
static Phone get(Class<? extends Phone> clazz) {
try {
return clazz.newInstance();
} catch (Exception e) {
}
return null;
}
void action() {
System.out.println(this.getClass());
}
}
class PhoneA2 extends Phone {
}
import java.util.HashMap;
import java.util.Map;
public class PhoneTest {
public static void main(String[] args) {
Phone ph = Phone.get("A2");
ph.action();
}
}
abstract class Phone {
private static Map<String, Class<? extends Phone>> map = new HashMap<String, Class<? extends Phone>>();
static {
map.put("A2", PhoneA2.class);
}
static Phone get(String key) {
try {
return map.get(key).newInstance();
} catch (Exception e) {
}
return null;
}
void action() {
System.out.println(getClass());
}
}
class PhoneA2 extends Phone {
}