【发布时间】:2016-08-24 06:42:13
【问题描述】:
我想知道以某种方式替换 Java 的“extends”关键字,以便基于参数(文件、环境变量、db ......基本上任何东西)动态扩展类。这是否可能,因为使用类加载器或调用构造函数无法实现这一点。我不是在问“我应该使用接口还是超类层次结构”,而是在 JAVA 引擎盖下的真正含义是什么,因为没有任何好的描述,只是古老的继承术语:
https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
【问题讨论】:
-
你会根据这个参数在课堂上做什么?为什么你不能只为不同的参数创建一个类的多个实例? (简短的回答是:不,你不能。继承是在编译时烘焙到类中的属性)
-
你为什么要这样做?这是用于动态代理之类的吗?
-
@AndyTurner 可能是注释和反映?
-
这听起来像是一个史诗般的 XY 问题。请说明您要解决的问题,而不是解决问题的中间步骤。这里的简短回答是响亮的不。更长的答案是肯定的,这是可能的,但需要大量且容易出错的加载时间编织。
-
@Zoltan:如果你能提供一个具体的例子来说明你正在做什么以及你遇到的限制(在另一个问题中,这个问题已经出现了),人们可以提供具体的建议处理这些限制。开放式“
extends是什么”可能无法帮助您解决这些问题。
标签: java class dynamic hierarchy