gpt4 book ai didi

java - 更顺畅地检查多个状态的属性

转载 作者:行者123 更新时间:2023-12-01 20:18:37 25 4
gpt4 key购买 nike

我最近偶然发现了一些事情,我认为应该有一种更顺利的方法,但我找不到。

在我的方法之一中,我必须检查 ActionEvent e 的确切来源。由于我有多个按钮,单击时应该调用相同的方法,因此我像这样检查它们:

if (e.getSource() == btn1 || e.getSource() == btn2 || e.getSource() == btn3)

对我来说这看起来不太好,因为我必须为每个按钮调用e.getSource()。我认为应该是这样的:

if(e.getSource() == btn1 || btn2 || btn3)

我知道这行不通,但我希望你能明白我想要实现的目标。如果是重复的,很抱歉,但我找不到它。如果根本不可能,那么我就不得不忍受它。

最佳答案

您可以将冗长的代码隐藏在带有变量参数的函数中。

public boolean checkSource( Object source, Object... buttons){
for( Object btn: buttons)
if( source == btn )
return true;
}

然后你必须列出按钮:

checkSource( e.getSource(), btn1, btn2, btn3, ... );

或者,使用 lambdaPredicate 接口(interface):

Predicate<Object> p1 = ( btn  -> btn == e.getSource() );
...
if( p1.test( btn1 ) || p1.test( btn2 ) || p1.test( btn3 ) || ...)

关于java - 更顺畅地检查多个状态的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45281070/

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