相关疑难解决方法(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万
查看次数

通过反射访问Java静态最终变量值

可以通过反射检索Java静态最终类变量的值吗?

java reflection

32
推荐指数
2
解决办法
4万
查看次数

在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万
查看次数

如果没有类的源代码,如何在Java中打印对象的值?

public class MyClass {
        ClassABC abc = new ClassABC();
} 
Run Code Online (Sandbox Code Playgroud)

我只有一个ClassABC的.class文件.我想打印"abc"对象的所有public,private,protected和default字段值.我怎么能用Reflection做到这一点?

java reflection

20
推荐指数
2
解决办法
3万
查看次数

Java如何打印所有局部变量?

我有一个方法,想要检查其中的变量而无需调试 - 在Java中是否可能?

我不想写大量的代码,如:

System.out.println("a: " + a);
Run Code Online (Sandbox Code Playgroud)

我想要像:

System.out.printLocals();
Run Code Online (Sandbox Code Playgroud)

有这样的东西也应该很棒:

System.out.printMembersOf(someObjectInstance);
Run Code Online (Sandbox Code Playgroud)

java local-variables

8
推荐指数
1
解决办法
9万
查看次数

重写 System.out.println

我怎样才能覆盖System.out.println()

就像我会覆盖一样toString()

@Override
public String toString() {
    return "x";
}
Run Code Online (Sandbox Code Playgroud)

我想让它当你打电话时

System.out.println(OBJECT);
Run Code Online (Sandbox Code Playgroud)

它将打印对象的属性而不是引用。

java

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

Scala扩展未发现的特征字段

我有一个scala特征,其公共UUID具有默认值:

trait pet {
    var uuid_ : UUID = UUID.randomUUID
}
Run Code Online (Sandbox Code Playgroud)

现在我在scala中创建了多个类:

class dog extends pet {
    var foo = 1
}
class cat extends pet {
}
class fish extends pet {
}
Run Code Online (Sandbox Code Playgroud)

之后我在Java中创建了一个方法(两个语言混合的旧项目).
这里剪了我的问题.在变量somePet是一个实例dog,catfish.但目前尚不清楚它们究竟是什么:

// printing all variables in the console for human testing
Serializer.printAllFields(somePet);

// The somePet Variable must be a pet
if(!pet.class.isAssignableFrom(somePet.getClass()))
    throw new Exception("Not a pet.");

// get the UUID of the pet
UUID uuid_;
try { …
Run Code Online (Sandbox Code Playgroud)

java reflection scala traits

2
推荐指数
1
解决办法
127
查看次数