根据文档,需要Pydantic“ORM 模式”(通过orm_mode = Truein启用)来启用该方法,以便通过从另一个类实例读取属性来创建模型实例。如果未启用 ORM 模式,该方法将引发异常。Configfrom_ormfrom_orm
我的疑问是:
我正在开发一个项目,其中许多类需要适当的典型实现equals和hashCode:每个类都有一组在构造时初始化的最终字段,其中包含"深度"不可变对象(null在某些情况下可以接受s)以用于散列和比较.
为了减少样板代码的数量,我考虑编写一个抽象类,提供这种行为的常见实现.
public abstract class AbstractHashable {
/** List of fields used for comparison. */
private final Object[] fields;
/** Precomputed hash. */
private final int hash;
/**
* Constructor to be invoked by subclasses.
* @param fields list of fields used for comparison between objects of this
* class, they must be in constant number for each class
*/
protected AbstractHashable(Object... fields) {
this.fields = fields;
hash = 31 * getClass().hashCode() + Objects.hash(fields); …Run Code Online (Sandbox Code Playgroud)