gpt4 book ai didi

java - Activity 对象@Implementation注解递归

转载 作者:太空宇宙 更新时间:2023-11-04 07:23:47 27 4
gpt4 key购买 nike

我在 Activity 对象库 ( https://java.net/projects/activeobjects/pages/Home ) 方面遇到问题。

假设我有这样的 ao 实体:

@Implementation(PersonImpl.class)
interface Person extends Entity{

public String getName();

public String setName();
}

以及该实体的实现类:

class PersonImpl {

private Person person;

public PersonImpl(Person person){
this.person = person;
}

public String getName(){
if( isTodayIsMonday() )
return "I hate monday";
else
return person.getName();
}
}

问题出在 PersonImpl 类中。由于 person.getName() 我得到了无限递归(总是调用 impl 类)。如何跳过调用实现(在 PersonImpl 类中)并仅从数据库获取名称?

最佳答案

根据http://www.javalobby.org/articles/activeobjects/ ,ActiveObjects 通过检查调用堆栈自动避免此问题:

“我们可以使用它来检查堆栈上一级的已定义实现。如果我们发现它发起了方法调用,我们将跳过已定义实现的重新调用,并实际正常执行方法调用。因此,从其已定义实现中对实体的任何调用都将跳过任何实现逻辑,从而避免递归。”

关于java - Activity 对象@Implementation注解递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18888995/

27 4 0
文章推荐: c - 内存性能/缓存难题
文章推荐: python - python错误处理中的类型转换
文章推荐: java - 将不在表中的列提取到结果集中
文章推荐: html - 如何将连接在一起的两个多列 `
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com