我有一张桌子:
| ID | ADV_ID | USER_ID |
| 1 | 22 | NULL |
| 2 | 22 | 3 |
| 5 | 44 | NULL |
Run Code Online (Sandbox Code Playgroud)
现在,我想选择行adv_id = 22和哪里user_id = 3.如果该行不存在,我想在哪里获取行adv_id = 22和user_id is null.
我试过这样的方式:
SELECT * FROM `table` WHERE adv_id = 22 AND (user_id = 3 OR user_id is null)
Run Code Online (Sandbox Code Playgroud)
但是这个查询返回两行 - with user_id = NULL和with user_id = 3.我想得到一行 - user_id = 3或者(或者如果不存在的话)user_id …
当我尝试使用Comparator.naturalOrder()它对字符串数组/列表进行排序时,不遵循列表的自然顺序.这是我使用的片段:
List< String > ordered = Arrays.asList( "This", "is", "the", "natural" ,"order");
System.out.println( "Natural order" );
ordered.forEach( System.out::println );
ordered.sort(Comparator.naturalOrder( ));
System.out.println( "After ordering" );
for ( String string: ordered ) {
System.out.println( string );
}
Run Code Online (Sandbox Code Playgroud)
输出:
Natural order
This
is
the
natural
order
After ordering
This
is
natural
order
the
Run Code Online (Sandbox Code Playgroud)
为什么Comparator.naturalOrder()这样表现?我尝试的情况也是如此Comparator.reverseOrder().
我有一个抽象类,让我们说AbstractClass和多个其他类(700+)扩展该抽象类.AbstractClass有一个方法,让我们说baseMethod()哪个不是抽象方法.许多类(500+)重写该方法并拥有自己的实现.现在使用eclipse,我可以很容易地看到那些通过执行覆盖该方法的方法Ctrl+Shift+G,但除了手动之外还有其他方法,以查看不覆盖该方法的类baseMethod()(剩余的200),但是是一个类扩展AbstractClass.