java – 使用反射从抽象基类访问构造函数
发布时间:2020-09-18 20:36:21 所属栏目:Java 来源:互联网
导读:我正在玩 Java的Reflection.我有一个带有构造函数的抽象类Base. abstract class Base { public Base( String foo ) { // do some magic }} 我还有一些扩展Base的类.它们没有太多逻辑.我想用Base的构造函数实例化它们,而不必在这些派生类中编写一些代理构造函
我正在玩 Java的Reflection.我有一个带有构造函数的抽象类Base. abstract class Base { public Base( String foo ) { // do some magic } } 我还有一些扩展Base的类.它们没有太多逻辑.我想用Base的构造函数实例化它们,而不必在这些派生类中编写一些代理构造函数.当然,我想用Reflection实例化那些派生类.说: Class cls = SomeDerivedClass.class; Constructor constr; constr = cls.getConstructor( new Class[] { String.class } ); // will return null Class clsBase = Base.class; constr = clsBase.getConstructor( new Class[] { String.class } ); // ok Base obj = (Base) constr.newInstance( new Object[] { "foo" } ); // will throw InstantiationException because it belongs to an abstract class 任何想法,我如何用Base的构造函数实例化派生类?或者我必须声明那些愚蠢的代理构造函数? 解决方法类不从父级继承构造函数.类没有父类构造函数(虽然它可以调用它们)所以你必须调用类所具有的构造函数,而不是超类所具有的构造函数.默认构造函数似乎只是这样做,因为它默认调用父项的默认构造函数.如果父级没有默认构造函数,则它的直接子级也不能. (编辑:鄂州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – 什么是运行时绑定?
- java – 在完整的GC期间是否清除了WeakHashMap?
- 使用JPA2 Hibernate Eclipse 4.2 MySQL 5.5从实体生成模式
- java – 如果在同步方法中调用,thread.yield()是否会丢失对
- 详解五种方式让你在java中读取properties文件内容不再是难题
- java 将byte中的有效长度转换为String的实例代码
- jsp+servlet+jdbc实现对数据库的增删改查
- 详解springMVC两种方式实现多文件上传及效率比较
- java – 在GUI中处理未处理的异常
- java – Magento Rest“Admin role not found”错误