Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果修复了历史错误(JVM上运行了这么多语言,并且能够进行交叉通信,向后兼容性只会影响源代码),我认为OP非常喜欢“wait”这个名称,它确实是一个不错的名称。不幸的是,它已经被Java采用了。我同意这是像Java那样做的方法。这里真正的问题是有一些感觉像_Java_Sql_Object_Overloading_Api Design - Fatal编程技术网

如果修复了历史错误(JVM上运行了这么多语言,并且能够进行交叉通信,向后兼容性只会影响源代码),我认为OP非常喜欢“wait”这个名称,它确实是一个不错的名称。不幸的是,它已经被Java采用了。我同意这是像Java那样做的方法。这里真正的问题是有一些感觉像

如果修复了历史错误(JVM上运行了这么多语言,并且能够进行交叉通信,向后兼容性只会影响源代码),我认为OP非常喜欢“wait”这个名称,它确实是一个不错的名称。不幸的是,它已经被Java采用了。我同意这是像Java那样做的方法。这里真正的问题是有一些感觉像,java,sql,object,overloading,api-design,Java,Sql,Object,Overloading,Api Design,如果修复了历史错误(JVM上运行了这么多语言,并且能够进行交叉通信,向后兼容性只会影响源代码),我认为OP非常喜欢“wait”这个名称,它确实是一个不错的名称。不幸的是,它已经被Java采用了。我同意这是像Java那样做的方法。这里真正的问题是有一些感觉像SQL的东西,没有像wait(int)这样的副作用。卢卡斯·埃德尔想把它送给约克。我发现这个项目非常有趣,其中一个关键特性似乎是在使用这个库编写查询时的“SQL感觉”。好吧,但是对于一个严肃的库来说,使用容易出错的签名(比如wait(int))


如果修复了历史错误(JVM上运行了这么多语言,并且能够进行交叉通信,向后兼容性只会影响源代码),我认为OP非常喜欢“wait”这个名称,它确实是一个不错的名称。不幸的是,它已经被Java采用了。我同意这是像Java那样做的方法。这里真正的问题是有一些感觉像SQL的东西,没有像wait(int)这样的副作用。卢卡斯·埃德尔想把它送给约克。我发现这个项目非常有趣,其中一个关键特性似乎是在使用这个库编写查询时的“SQL感觉”。好吧,但是对于一个严肃的库来说,使用容易出错的签名(比如wait(int))也不好。(在我看来)你又回到了比赛中。优点:好的方法签名缺点:感觉不像SQL…我认为任何建议使用各种方法来覆盖wait方法的人都应该被否决-用例根本不能证明这样的入侵是正当的。然而,我完全理解希望它尽可能像SQL一样。我同意你做这样的事情有一种不好的感觉。但向下投票是不公平的,因为问题真的是围绕这个问题。似乎没有“解决办法”。在我看来,每一个想法和声明都是非常受欢迎的。最后,我们将不得不看看最大的优点和较少的缺点在哪里——这仍然取决于个人偏好。我从来没有否决过任何人,现在也不会开始=)只是想强调这样一个事实:这种“解决方案”将是一种严重的黑客行为(字节码操纵是交叉关注点和中间件的职责)最终会给人带来痛苦。这当然只是我的观点,但我对此感觉非常强烈。(一场有趣的讨论)谢谢你,亚历克斯。我非常确定,在我的fluent API中,没有人会在SQL构造的中间步骤中使用
wait/notify
。这就像在那个对象上同步一样奇怪。我还考虑过为updatewait(int)添加
,这是个不错的主意。问题是还有一个可选的
of
方法,它应该位于
wait()
之前。因此,我又回到了创建非SQL的原始问题上,这是我的用户很难理解的:-/我真的认为重载是最无害的(幸运的是我使用了
int
,而不是
long
)@Lukas我实际上建议在现有的基础上使用
forUpdate(long val)
。我看不出有什么理由给它起不同的名字。然后您还可以保留该方法的原始版本,并从任何相关方法获取等待值。至于是否有人会在对象上使用wait/notify,我不会打赌,因为它不在您的控制之下,而且用户会做一些奇怪的事情。无论如何,关键是它违反了游戏规则:)@Axel,声明一个方法
X wait(int)
,并不违反规则(但可能有点混乱),因为由于重载,该方法与
对象中的方法不同。我的参数是
int
,而不是
long
。我担心我可能会混淆我的用户。考虑到Oracle SQL对
for UPDATE
子句的定义,如果没有
WAIT
关键字,就不应该有
for UPDATE(int)
方法。我将用正式的SQL语法定义更新我的问题,因为这似乎也有点混乱:-)我明白你的意思。但是引入wait(int)基本上会破坏对对象调用的
wait(5000)
之类的构造(我知道您认为这不太可能)。我仍然不明白为什么您不想只使用
forUpdate(5)
,尤其是在总是需要等待的情况下。在这种极不可能的情况下,我的用户仍然可以调用
wait(5000L)
来调用
java.lang.Object
方法。我真的不想反转
等待
子句,如果没有必要的话。。。但这显然是一个可行的解决方案
public interface Condition {
    public boolean met();
}