gpt4 book ai didi

java - java中的动态类加载

转载 作者:行者123 更新时间:2023-12-02 03:02:34 24 4
gpt4 key购买 nike

我有一些奇怪的要求,我需要动态加载一个类,

这里我有一个接口(interface)

    public interface House
{
public Object loadHouseModel(String type);
public Object loadHouseSpace(String type);
}

现在所需的类将实现此接口(interface)

     public class DuplexHouse implements House 
{
public Object loadHouseModel(String type)
{
///Method body goes here
}
public Object loadHouseSpace(String type)
{
///Method body goes here
}
}

现在我的要求是我需要加载 DuplexHouse 或任何实现 House 的类

要求是我将从属性中获取DuplexHouse类名,我所知道的是我获得的类名将实现House接口(interface)。所以我的属性(property)看起来像这样 type_house=xx.xx.xxx.DuplexHouse,xx.xx.xx.TruplexHouse,..etc

根据房屋类型我需要加载相应的房屋对象

所以在我的主课上 Class cl = Class.forName(xx.xxx.xxx.DuplexHouse);我的要求是我想要内部保存 DuplexHouse 对象的 House 实例我该怎么做??

最佳答案

首先做Class.forName 。这将为您提供 DuplexHouse类的形式为Class<?> 。对此,执行 newInstance() 。它会给你 DuplexHouse 的实例以 Object 的形式。将其转换到 House你有你的DuplexHouse实例形式为House .

这假设 (1) DuplexHouse 类位于类路径中 (2) DuplexHouse 构造函数采用零参数。

关于java - java中的动态类加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42240490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com