gpt4 book ai didi

java - 只允许预定义包中的类调用构造函数/方法?

转载 作者:行者123 更新时间:2023-12-01 17:22:35 25 4
gpt4 key购买 nike

我有一个类,我希望只允许某个类调用其构造函数。我知道,通过普通的java,实现这一点的唯一方法是在包级别创建构造函数和/或使其受到保护,但是没有一些框架/库允许我做这样的事情:

@AllowedCallers({"com.foo", "foo.bar"})
public MyConstructor(){
....
}

最佳答案

这可能是一种方法;

  1. 将所有类构造函数设为私有(private)
  2. 添加静态方法并通过通用绑定(bind)限制调用者 public static <T extends ClassCanCallNew> void newMyClass(T clazz, Object... args)
  3. 只有扩展 ClassCanCallNew 的人才能使用此方法调用私有(private)构造函数
  4. clazz.setMyClass(new MyClass(args));使这条线适合您自己的需要

关于java - 只允许预定义包中的类调用构造函数/方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61265774/

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