我想在Java中打印对象的"对象引用"以进行调试.即根据情况确保对象是相同的(或不同的).
问题是有问题的类继承自另一个类,它覆盖了toString()和hashCode(),它们通常会给我id.
示例情况:运行多线程应用程序,其中我(在开发期间)想要检查所有线程是否使用相同的资源对象实例.
我知道upper()Java和其他框架中有很多方法,比如Apache commons lang,它将String转换为全部大写.
有没有提供任何公共库等的方法isUpper(String s)和isLower(String s)方式,检查在字符串中所有字符都是大写或小写?
编辑:
关于转换为Upper并与之比较的许多好答案.我想我应该更具体一点,并说我已经想到了这一点,但我希望能够使用现有方法.
关于可能在apache.commons.lang.StringUtils中包含此内容的好评.有人甚至提交了一个补丁(20090310).希望我们很快就会看到这一点. https://issues.apache.org/jira/browse/LANG-471
编辑:
我需要这种方法的方法是将有时会全部大写的酒店名称大写.如果它们都是小写或大写,我只想把它们大写.我确实遇到了一些帖子中提到的非字母字符的问题,最后做了类似这样的事情:
private static boolean isAllUpper(String s) {
for(char c : s.toCharArray()) {
if(Character.isLetter(c) && Character.isLowerCase(c)) {
return false;
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
这个讨论和不同的解决方案(有不同的问题),清楚地表明在commons.lang中需要一个好的实体isAllUpper(String s)方法.
在那之前,我猜这myString.toUpperCase().equals(myString)是最好的方式.
这是我想要完成的,我有一个类具有一些值的枚举,我想继承它并为枚举添加更多的值.这是一个不好的例子,但是:
public class Digits
{
public enum Digit
{
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
}
}
public class HexDigits extends Digits
{
public enum Digit
{
A, B, C, D, E, F
}
}
Run Code Online (Sandbox Code Playgroud)
这样HexDigits.Digit包含所有十六进制数字.那可能吗?
是否有针对每个请求的Spring HandlerInterceptors的新实例?
我在Spring中有一个拦截器,它有一个类字段.
public class MyInterceptor extends HandlerInterceptorAdapter {
Private boolean state = false;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
state = true;
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
if (state == true) {
System.out.println("Success");
}
}
Run Code Online (Sandbox Code Playgroud)
如果使用此拦截器,它将始终打印"成功"吗?(无论有多少线程在同一时间这样做?)
我想编写一个 Spring MVC HandlerInterceptorAdaptor,它根据 HttpResponse 是否是重定向在 postHandle() 方法中执行不同的操作。
这可能吗,如果可以,怎么办?
public class MenuInterceptor extends HandlerInterceptorAdapter {
public final void postHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler,
ModelAndView modelAndView) throws SystemException {
if (redirect) {
// do somethnig
} else {
// do something else
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:有没有比这更好的方法:
if (modelAndView.getView() instanceof RedirectView || modelAndView.getViewName().startsWith("redirect:")) {
// Do something
} else {
// Do something else
}
Run Code Online (Sandbox Code Playgroud) 有没有人有一个很好的算法来获取有序的整数列表,即:
[1,3,6,7,8,10,11,13,14,17,19,23,25,27,28]
在给定数量的均匀大小的有序子列表中,即4,它将是:
[ 1,3,6 ] [7,8,10,11] [13,14,17,19] [23,25,27,28] ]
要求是每个子列表都是有序的并且尺寸尽可能相似.
我一起使用Google Analytics和Google网站优化工具.在我们的开发平台上,我突然意识到有些cookie被设置了两次.
GA Cookie:
__utma
__umtb
__utmc
__utmz
Run Code Online (Sandbox Code Playgroud)
全部由GWO和GA设定.我只期望看到一组这些饼干.GWO在域名前面设置一个点:
.dev.example.com
GA将它们设置为:
dev.example.com
我尝试谷歌这一点,并在RFC2109 HTTP状态管理机制中阅读有关它的内容
在SO上搜索它,导致许多答案引用"cookie点规则",但我仍然没有得到它.
该规则究竟是什么以及它具有哪些含义?
为什么以下代码没有编译:
@Test
public boolean testException() throws MyException {
try {
System.out.println("Try some resource, which may throw an exception");
return resource.getSomething();
} catch (Exception e) {
logAndThrowSpecificException(e);
} finally {
System.out.println("Clean up");
}
}
private void logAndThrowSpecificException(Exception e) throws MyException {
throw new MyException("Checked exception", e);
}
Run Code Online (Sandbox Code Playgroud)
在IntelliJ中它抱怨我需要从testException()方法的最后一行返回一个值,但据我所知,没有代码路径可以达到这一点?我错过了什么?
StackOverflow上有类似的问题,但我能找到的最佳解决方案是只输入一个return null语句.对于为什么这是必要的,没有正确的答案.