Tag:

如何获取父基类对象super.getClass()

我有一点Java问题(作为一名C ++程序员)。 我有2个相关的课程: public class Patient() { … } public class PatientPersistent extends Patient { … public void foo() { System.out.println(super.getClass().toString()); } } 这将输出: class org.example.smartgwt.server.model.PatientPersistent 有没有办法获得父类类型? 即 class org.example.smartgwt.server.model.Patient。 这将允许我概括一些我需要在每个孩子中实施的方法,这些方法很糟糕。 谢谢! UPDATE 我正在使用Dozer将我的域Hibernate对象转换为Serializable版本。 我不希望客户知道这一点,因此客户只能看到Patient类。 在服务器端,我执行转换。 public class DataObject { private static final Class DstType = Type; public Object convert(Object srcData, final BeanFactory factory) { […]

Java中’System.out.println()’和’toString()’之间的连接

Java中System.out.println()和toString()之间的连接是什么? 例如: public class A { String x = “abc”; public String toString() { return x; } } public class ADemo { public static void main(String[] args) { A obj = new A(); System.out.println(obj); } } 如果主类运行,则输出为”abc” 。 当我删除覆盖toString()的代码时,它输出为”A@659e0bfd” 。 那么,当我使用参数作为对象时,是否可以解释System.out.println()的工作原理是什么? 是否与toString()方法完全连接?

静态与实例变量:差异?

静态变量和实例变量之间有什么区别。 以下句子是我无法得到的: 在某些情况下,类的所有对象只应共享特定变量的一个副本 – 这里使用静态变量。 静态变量表示类范围信息。类的所有对象共享相同的数据。 我认为实例变量是使用类广泛的,而静态变量只在自己的方法中有范围?