gpt4 book ai didi

java - 如何使用包私有(private)构造函数创建类?

转载 作者:搜寻专家 更新时间:2023-10-31 20:03:23 25 4
gpt4 key购买 nike

我正在开发一个库,我想在其中返回一个代表真实世界对象的对象。我想将此类暴露给开发人员以操纵现实世界的对象,但我不想让他们自己构造这些对象。

示例

public class World {
public static List<RealObject> getAllObjects() {
// How to create RealObject with physicalID?
}
}

public class RealObject {
private int physicalID;

public RealObject(int physicalID) {
// Undesirable, user has no knowledge of IDs
}

public void setState(int state) {
// Code using physicalID to change state
}
}

这些对象目前没有构造函数,并且有一个私有(private)的 id 字段,我通过我的库中的反射设置了该字段。这很完美,但我不禁认为必须有更好的解决方案。也许在我的情况下一个有用的约束是只需要有可能从另一个类构造这个对象。

有更好的解决方案吗?在那种情况下,出于组织目的,是否仍然可以将类放在单独的文件中?

最佳答案

如果您将默认访问级别放在构造函数(或任何其他方法)上,则只能由同一包中的类访问。

具体回答题目中的问题:

public class RealObject {
RealObject(int physicalID) {
// Package-private constructor
}
}

关于java - 如何使用包私有(private)构造函数创建类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18226420/

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