List里面放的是对象,而这些对象是根据外面的字符串参数(类名)来确定的,这些类的属性和方法都不一样,我要用到这些类,但是List拿出来的对象都是Object类型的,用之前必须要强制的转型,但是我现在没有办法强制转型,因为我的类是不确定的,各位大侠,小弟该怎么办啊。
解决方案 »
- 厌倦日本,厌倦了外包,厌倦了压迫。今天我要奋起反抗!!!!!!!!!!
- 关于抽象类和接口的问题
- j2ee的作业,大家都来帮忙吧!easy~
- applet中弹出一个窗口
- 软件开发第3方包用得太多了,怎么给软件瘦身,有好的建议吗?
- java读取word文档
- 请教JCC(Java Compiler Compiler)是干什么用的?
- 有在深圳的程序员吗?!
- JTextField中鼠标拖动选择字符时会触发KeyListener事件?代码如下,求解决
- 怎么没人给出令人满意的回答啊,我再加点分。高手指点吧,没办法了
- 在java里怎么样解析${ }占位符?
- 如何在行数不确定的jtable中,设某列为单选按钮?
if(list.get(i) instanceof Employee )
System.out.println("a 是Employee 的实例。。do something");
else if(list.get(i) instanceof Employee1 )
System.out.println("a 是Employee1 的实例。。do something");
else if(list.get(i) instanceof Employee2 )
System.out.println("a 是Employee2 的实例。。do something");
这里的Employee,Employee1,Employee2 就是你 说的动态的了,你可以从属性文件或xml中读取
进行动态判断~!
public class Employee1{}
public class Employee2{}运用多态 写两个相同名的方法只是接收的参数不同
public class run{
public double calculate(Employee1 ob) {
//这里写要对行参Employee1对象ob操作的语句
} public double calculate(Employee2 ob) {
//这里写要对行参Employee2对象ob操作的语句
}
}
调用的时候只需
run dd = new run();
dd.calulate(你要传入的对象 如Employee1的对象);
java会根据你传入的对象选择执行相应的calulate方法
不知道我说清楚没有 应该对你有帮助吧
属性文件
provider.class=ch2.HelloWorldMessageProvider
renderer.class=ch2.StandardOutMessageRenderer props= new Properties();
try{
props.load(new FileInputStream("ch2/conf/msf_zh_AS.properties"));
String rendererClass=props.getProperty("renderer.class");
String providerClass=props.getProperty("provider.class");
renderer=(MessageRenderer)Class.forName(rendererClass).newInstance();
provider=(MessageProvider)Class.forName(providerClass).newInstance();
}catch(Exception e){
System.out.println("error :"+e.getMessage());
}
private MessageRenderer renderer=null;
private MessageProvider provider=null;if(list.get(i) instanceof renderer)
do something
else (list.get(i) instanceof provider)
do something