java将某个类中的所有属性都获取出来同时统计其中私有属性的个数;统计属性类型是int类型的属性个数 统计属性名长度不大于4位同时是纯字母的属性的个数的代码
时间: 2024-04-29 08:27:00 浏览: 12
可以使用Java反射机制实现这个功能。以下是一个示例代码:
```java
import java.lang.reflect.Field;
public class ReflectionExample {
public static void main(String[] args) {
MyClass myObject = new MyClass();
Class<?> myClass = myObject.getClass();
Field[] fields = myClass.getDeclaredFields();
int privateCount = 0;
int intCount = 0;
int shortNameCount = 0;
for (Field field : fields) {
if (field.getName().startsWith("private")) {
privateCount++;
}
if (field.getType() == int.class) {
intCount++;
}
if (field.getName().matches("[a-zA-Z]{1,4}")) {
shortNameCount++;
}
}
System.out.println("Private attribute count: " + privateCount);
System.out.println("Int attribute count: " + intCount);
System.out.println("Short name attribute count: " + shortNameCount);
}
}
class MyClass {
private int privateInt;
public int publicInt;
private String privateString;
public String publicString;
private boolean privateBoolean;
public boolean publicBoolean;
private float privateFloat;
public float publicFloat;
private double privateDouble;
public double publicDouble;
private char privateChar;
public char publicChar;
private short privateShort;
public short publicShort;
private byte privateByte;
public byte publicByte;
private String abc;
public String def;
private String ghi;
public String jkl;
private String mno;
public String pqr;
private String s;
public String t;
}
```
在这个示例代码中,首先定义了一个 MyClass 类作为示例。然后使用反射机制获取 MyClass 类中的所有属性,并对这些属性进行统计。
具体来说,使用 getName() 方法获取属性名,startsWith() 方法判断属性是否为私有属性,getType() 方法获取属性类型,matches() 方法判断属性名是否满足要求。最后输出统计结果。