相关疑难解决方法(0)

转储java对象的属性

是否有一个库将以递归方式转储/打印对象属性?我正在寻找类似于Firebug中的console.dir()函数的东西.

我知道commons-lang ReflectionToStringBuilder但它没有递归到一个对象.即,如果我运行以下内容:

public class ToString {

    public static void main(String [] args) {
        System.out.println(ReflectionToStringBuilder.toString(new Outer(), ToStringStyle.MULTI_LINE_STYLE));
    }

    private static class Outer {
        private int intValue = 5;
        private Inner innerValue = new Inner();
    }

    private static class Inner {
        private String stringValue = "foo";
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到:

ToString $ Outer @ 1b67f74 [intValue = 5
innerValue = ToString $ Inner @ 530daa]

我意识到在我的例子中,我可以覆盖Inner的toString()方法,但在现实世界中,我正在处理我无法修改的外部对象.

java reflection dump properties tostring

63
推荐指数
5
解决办法
7万
查看次数

在Eclipse中自动生成toString方法的快捷方式是什么?

toString某些简单类的自动生成方法是好还是坏?

我正在考虑生成类似下面的内容,它采用变量名称并生成一个toString方法,打印名称后跟其值.

private String name;
private int age;
private double height;

public String toString(){
   return String.format("Name: %s Age: %d Height %f", name, age, height);
}
Run Code Online (Sandbox Code Playgroud)

java automation tostring

28
推荐指数
4
解决办法
3万
查看次数

ThreadLocal <AtomicInteger>可能有用吗?

所以我看到有人试图ThreadLocal<AtomicInteger>在某些Java代码中使用 a .
现在,对于链接代码,这显然是无用的,以及导致请求被拒绝的其他问题.

而且它似乎永远是无用的:( AtomicInteger来自java.util.concurrent.atomic包)是为多线程访问而设计的,并且ThreadLocal使每个线程都有自己的值,所以为什么要使用呢?

我的问题是:是否存在任何ThreadLocal<AtomicInteger>有用的情况?

java multithreading atomic

10
推荐指数
2
解决办法
2071
查看次数

如何更快地编写java代码

我被要求编辑一个java文件,以便它检索一个值.值名称并不重要,但它是SiteCategory.

在Eclipse的帮助下,我能够找到看起来像我正在寻找的方法.

然后我创建了这七行,看看其中一行是否返回了我想要的内容.

System.out.println("1) " + p_objRecord.getSiteCategoryList().toString());
System.out.println("2) " + p_objRecord.getSiteCategoryList().getClass());
System.out.println("3) " + p_objRecord.getSiteCategoryList().getSiteCategory().toString());
System.out.println("4) " + p_objRecord.getSiteCategoryList().getSiteCategory(0).getCategoryDescription());
System.out.println("5) " + p_objRecord.getSiteCategoryList().getSiteCategory(0).toString());
System.out.println("6) " + p_objRecord.getSiteCategoryList().getSiteCategory(0).getCategory().getName());
System.out.println("7) " + p_objRecord.getSiteCategoryList().getSiteCategory(0).getCategory().toString());
Run Code Online (Sandbox Code Playgroud)

这是输出

1)com.webservices.lists.farming.SiteCategoryList@47c7b1f5

2)class com.webservices.lists.farming.SiteCategoryList

3)[Lcom.webservices.lists.farming.SiteCategory; @ 105e924

4)> P align = left>

5)com.webservices.lists.farming.SiteCategory@ca143fc6

6)产品:杂项:瓶子

7)com.webservices.platform.core.RecordRef@78f8dcf1

6号正是我想要的.我花了一些时间才最终达到这一点并找出正确的语法.如果您被要求使用不熟悉的API执行此操作,您将如何找出正确的语法?

java

3
推荐指数
1
解决办法
1002
查看次数