java 查看类的属性-如何查看java安装路径
发布时间:2023-06-03 09:10 浏览次数:次 作者:佚名
反射机制是java的一个很大特点。通过反射机制,我们可以很方便的得到一个类的所有属性、所有方法、甚至是泛型类型。那么是不是也可以通过反射很方便地获取到各个属性的类型呢?比如说如下的实体(省略get,set方法)
@SuppressWarnings("unused")
public class EntityT {
private static int private_static_int = 1;
private final int private_final_int = 2;
private static final int private_static_final_int = 1;
private int private_common_int;
protected static int protected_static_int = 1;
protected final int protected_final_int = 2;
protected static final int protected_static_final_int = 1;
protected int protected_common_int;
public static int public_static_int = 1;
public final int public_final_int = 2;
public static final int public_static_final_int = 1;
public int public_common_int;
public EntityT() {
}
}
如果我想获得所有普通属性呢(即只有private、protected、public修饰的属性)?
一直纠结了半天java 查看类的属性,后来无意间看到了Field类的getModifers()方法和Modifier类,实际上这就足够了(很庆幸)
首先说说getModifiers(),引用java官方的说明就是:返回一个用数字表示的java修饰符,需要使用Modifier类来解码这个数字
什么意思呢,查看Modifier类的源码(帮助文档中也有)得知:
1 public
2 private
4 protected
16 final
8 static
也就是说【public int public_common_int;】这样一个属性java 查看类的属性,调用getModifers()之后返回的就是1,
【private static final int private_static_final_int = 1;】这个属性返回的就是26
通过调用Modifier.toString(field.getModiers())这样一个方法,就可以把数字转换成字符串表示 ,
【protected static int protected_static_int = 1;】就会输出 protected static
以上就是这次所有的内容,关于类Field和类Modifier的详细说明请参考java源码或java帮助文档。