问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java 中如何实现 动态声明对象?

发布网友 发布时间:2022-04-30 18:53

我来回答

2个回答

热心网友 时间:2022-06-30 02:09

没太理解你要求的 实现但一般这种动态获取类信息 在java中都是通知反射机制实现的

Java的反射API(Reflection API)
Class类:要正确使用Java反射机制就得使用java.lang.Class这个类。它是Java反射机制的起源。当一个类被加载以后,Java虚拟机就会自动产生一个Class对象。通过这个

Class对象我们就能获得加载到虚拟机当中这个Class对象对应的方法、成员以及构造方法的声明和定义等信息。
 
反射API用于反应在当前Java虚拟机中的类、接口或者对象信息
功能:(Object object = new Object(),下面以对象object进行说明)
1)  获取类的Class对象
如果在运行时一个类的实例已经得到,你可以使用
Class c = 对象名.getClass();例: Class c = object.getClass();Class s = object.getSuperclass();
如果你在编译期知道类的名字,你可以使用如下的方法Class c =java. awt. Button.class; 或者Class c = Integer.TYPE;
如果类名在编译期不知道, 但是在运行期可以获得, 你可以使用下面的方法Class c = Class.forName(“类的全路径”);
2)  获取类的Fields ,对Field进行赋值
Field[] fus = object.getClass().getDeclaredField();
Field fu = object.getClass().getDeclaredField(fieldName);//获取对象object的名称为fieldName的属性域。
fu.setAccessible(true) ;//设置属性域的访问属性
fu.set(object,val); //设置object对象的属性值
3)  获取类的Method
Method[]  ms= object.getClass().getDeclaredMethods()
4)  获取类的Constructor
5)  新建类的实例
(A)通过Class<T>的函数newInstance
(B)通过Constructor对象的方法newInstance.

热心网友 时间:2022-06-30 02:10

Animl animal;// 由子类实例化
if(animal instanceofDog){
Dog dog = (Dog)animal;
}else if(animal instanceofCat){
Cat cat =(Cat)animal;
}
若还有子类一次判断,这是一种基本的办法追问有没有不需要判断的?直接根据类对象声明合适的引用

追答没有,java本身是先编译再执行的,不会动态的改变声明的,即使封装的再好也少不了判断的逻辑,否则就是编译错误了,不过java中有多态,可以解决很多问题,其实你的那么多子类无非是具有不同的行为(函数实现)那么完全可以由多态来实现,如果子类含有独有的方法那么就只能强转了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机壁纸花卉红色手机壁纸花卉 辽宁智能五芯防水连接器 军工产品浅谈——航空插头 xp电脑系统修复XP系统怎么恢复出厂设置 ...表编辑器后打不开任何文件,无需重装系统,电脑盲都能用 粼基本信息 粼五笔怎样打? 【微科普】想变成光?先搞清楚光是什么吧! 手机被拉黑后打电话是什么提示? 物流管理专业对数学的要求高么 C++中为什么要动态创建对象,有什么好处 打印机墨盒封条没撕怎么办?墨盒躲在里面不出来,所有按键的灯都在闪,怎么办呢 如何定义一个动态的对象数组? 硒鼓封条拉断了 C#当中对象的方法具有动态性,即有些方法和对象的属性是... 为什么放大的对象是动态信号,却要晶体管在信号为零时有合适的直流电流和极间电压? 雷神笔记本出现死机的状况该怎样解救? 硒鼓的封条断在里边了,完全看不到封条,打印出来的还有封条的印子,请问如何取出 c++中对象动态建立与静态建立的区别和应用 c++中类对象是动态变量,执行完该对象程序块时,调用析构函数,此时对 硒鼓封条怎么拉出来? js中的内置对象是怎么理解的 ?怎么区分静态对象和动态对象的~~感觉很抽象 很懵懂的样子 打印机的新碳粉盒子旁边的那个抽条拉断了怎么办 1. 面向对象分析模型的五个层次是什么? 2. 对象的五个特点是什么? 3. 为什么说对象是动态的? 书慌了.. 有什么好看的超越的三国的完本的小说么 紧急!在出版的任何文学作品里 有没有一个人为了房子而放弃其他机会(如事业、生活方式)的例子? 求有关周瑜周公瑾的书 强求主角穿越但不得改变剧情的小说 孙策,大乔,小乔,周瑜,孙坚,孙权,曹操,太史慈 有关周瑜的书 什么是动态对象数组?求详解,回答不要太专业,口语化最好,Copy者谢绝回答!谢谢你的帮忙! 我在更换打印机硒鼓时,那个封条需要全抽出来,可我不知道以为没有用,给剪断了,怎么办_百度问一问 c++中用new在堆中创建对象也叫“动态分配对象”吗? 硒鼓一端上这小节塑料(封条)撕断了怎么办? 解决频繁死机的雷神笔记本用什么办法好? SQL里面的没有标准正态分布的累积函数NORMSDIST,有什么办法解决 没有电信手机怎么查询无线网卡是否欠费 乳清蛋白固体饮料主要有什么功效? 农业手机掌上银行在绑定银行卡号的时候,9为什么不没绑定,显示改卡未签约农行短消息服务。怎么办??? 关于农业银行手机客户端的一些问题 手机客户端不能注册登陆,提示该 爱蒙床垫的品质见证 养锦鲤适合用什么材质的滤材过滤? 海口美丽沙岛有什么好玩的? 东北旅游资源的主要特点? 海口市恒大美丽沙属哪个区? 海口白沙门公园都有哪些项目,各各的门票是多少钱? 乞力马扎罗山的火山和其他火山有什么不一样的吗? 说说海口白沙门的历史 干粉灭火器充气要怎么充 岩棉夹芯彩钢板多少钱一平方?