gpt4 book ai didi

java - 自动生成包装器以防止 "malicious downcast"?

转载 作者:行者123 更新时间:2023-12-01 08:39:30 24 4
gpt4 key购买 nike

如果您在 Java 中实现了一个接口(interface),则没有什么可以阻止调用者查看您提供的具体实现,转换为该类并调用不在接口(interface)中的方法。我认为这被称为“恶意向下转换”。

防止这种情况的一种方法是创建一个包装器,该包装器仅具有接口(interface)的方法并且不公开它委托(delegate)的实现实例。如果没有对私有(private)变量的反射,您应该是安全的。

有没有办法自动创建这些类型的包装器(在运行时,不使用 IDE 中的代码创建向导,因为它仍然创建需要维护的源文件)?

最佳答案

另一种防止这种情况的方法是使用工厂类,并让实现成为工厂的私有(private)内部类。只有工厂可以看到它,并且它只会返回接口(interface)类型,因此没有具体的实现可以进行强制转换。

关于java - 自动生成包装器以防止 "malicious downcast"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/766738/

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