Java 创建一个可以';不能用新的

Java 创建一个可以';不能用新的,java,jakarta-ee,Java,Jakarta Ee,所以对于一个基本的EJB @Stateless @Local public class boo { ... } 该项目正在将10年前使用静态方法模式编写的大型业务逻辑jar转换为EJB模式和REST服务。我的问题是上面的例子可能在数百个类似这样的地方被实例化 boo = new boo(); 这让我的生活很悲惨。既然EJB不允许您使用私有构造函数,有没有一种方法可以让我使用新语句导致编译器错误,这样我们就可以更轻松地跟踪所有内容并将它们转换为bean注入?我有一个类在773个地方被实例化 您

所以对于一个基本的EJB

@Stateless
@Local
public class boo {
...
}
该项目正在将10年前使用静态方法模式编写的大型业务逻辑jar转换为EJB模式和REST服务。我的问题是上面的例子可能在数百个类似这样的地方被实例化

boo = new boo();
这让我的生活很悲惨。既然EJB不允许您使用私有构造函数,有没有一种方法可以让我使用新语句导致编译器错误,这样我们就可以更轻松地跟踪所有内容并将它们转换为bean注入?我有一个类在773个地方被实例化

您应该能够临时将其设置为私有,以帮助查找编译错误

此外,在大多数IDE中都有一些工具允许您“查找用法”或“查找引用”。只需创建public no args构造函数,然后右键单击构造函数名称,然后选择find命令。在Eclipse上,它被简单地称为“引用”。

另一种方法是


将光标放在eclispe中的
公共构造函数上
,然后按
Ctrl+Shift+G
,它将在整个
项目中找到
构造函数
(参考)的用法,如果您使用参数创建另一个构造函数并删除默认的空构造函数?它将显示新的boo()发生的位置,对吗?!在对象声明中使用cdi@Inject,这就是我们现在正在做的事情。我的问题是,我们的开发团队有一半在海外,我们发现其中一些人在被告知不要使用新的。我想不出一种模式能阻止这种情况继续下去。当然,在编写代码的过程中,我们可以创建假构造函数之类的,然后删除它们,然后移动到下一个类等等。也许这是一个使用一些工厂模式来防止“新”使用的想法,但这样我认为使用EJB是不可能的