什么是反思,为什么它有用?
我对Java特别感兴趣,但我认为在任何语言中原则都是一样的.
如何动态循环遍历java中的类属性.
例如:
public class MyClass{
private type1 att1;
private type2 att2;
...
public void function(){
for(var in MyClass.Attributes){
System.out.println(var.class);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这在Java中可能吗?
我有一个类,其中包含一个看起来像这样的人的信息:
public class Contact {
private String name;
private String location;
private String address;
private String email;
private String phone;
private String fax;
public String toString() {
// Something here
}
// Getters and setters.
}
Run Code Online (Sandbox Code Playgroud)
我想toString()返回this.name +" - "+ this.locations + ...所有变量.我试图使用这个问题所示的反射实现它,但我无法设法打印实例变量.
解决这个问题的正确方法是什么?
我需要能够遍历整个对象图并记录所有成员字段的所有内容.
例如:对象A具有对象B的集合,其具有对象C的集合,并且A,B,C具有其他字段,等等.
Apache Commons ToStringBuilder是不够的,因为它不会遍历对象图或输出集合的内容.
有没有人知道另一个库会做这个或有一个代码片段来做到这一点?
我想要一种简单的方法来打印出一个java对象,或者换句话说,将一个对象序列化为一个字符串.我想看到对象中包含的所有变量的值,如果有更多的对象(如列表或其他),它也应该打印出该对象中的东西.基本上,它会像JSON编码,但JSON不支持无穷大,我需要查看其中一个double或float值是否存在无穷大或NaN.
我怎样才能做到这一点?
为了简化类的调试时内省,我想在基类中为相关对象创建一个通用的toString方法.由于它不是性能关键代码,我想使用Reflection来打印字段名称/值对("x = 1,y = 2"等).
是否有捷径可寻?我尝试了几种可能的解决方案,并遇到了安全访问问题等问题.
要明确的是,基类中的toString()方法应该反复迭代从它继承的任何类中的公共val,以及混合的任何特征.
在Javascript中,如果要检查chrome中的某个对象,
console.log(object) 将打印输出变量和关于对象的方法.
Ruby也有object.inspect返回有关该对象的基本信息.
我应该在Java中使用什么代码来检查对象?
java ×6
reflection ×4
tostring ×2
attributes ×1
dump ×1
infinity ×1
json ×1
loops ×1
object ×1
scala ×1
terminology ×1