import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Exec {
public static void main(String[] args) {
Calendar birthday = Calendar.getInstance();
birthday.set(1983, 5, 13, 18, 30, 05);
Student s1 = new Student("000005", "张三", true, new Timestamp(birthday
.getTimeInMillis()), 178.3);
System.out.println(s1);
System.out.println("\n==========================================");
System.out.println("通过反射获取的信息:");
System.out.println("==========================================");
ClassInfo classInfo = new ClassInfo();
System.out.println(classInfo.getClassInfo(s1));
}
}
class ClassInfo {
public String getClassInfo(Object obj) {
StringBuffer result = new StringBuffer();
Class cls = obj.getClass();
// 获取参数类变量的属性信息
Field[] fields = cls.getDeclaredFields();
String fullName = cls.getName();
String className = "类的名称:"
+ fullName.substring(fullName.lastIndexOf(".") + 1);
// 如果有包名,获取包名
int packagePosition = fullName.lastIndexOf('.');
String packageName = null;
if (packagePosition < 0) {
packageName = "";
} else {
packageName = "包的名称:"
+ fullName.substring(0, fullName.lastIndexOf('.'));
}
// 输出包名和类名
result.append(packageName + "\n");
result.append(className + "\n");
// 遍历变量
for (Field field : fields) {
field.setAccessible(true);
try {
if (field.getModifiers() == Modifier.PRIVATE) {
result.append("私有属性:" + field.getName() + ":值为:"
+ field.get(obj) + "\n");
} else if (field.getModifiers() == Modifier.PROTECTED) {
result.append("受保护的属性:" + field.getName() + ":值为:"
+ field.get(obj) + "\n");
}
} catch (Exception e) {
e.printStackTrace();
}
}
return result.toString();
}
}
class Student {
private String number = null;
private String name = null;
protected boolean sex = false;
private Date birthday = null;
protected double height = 0;
public Student() {
}
public Student(String number, String name, boolean sex, Date birthday,
double height) {
this.number = number;
this.name = name;
this.sex = sex;
this.birthday = birthday;
this.height = height;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isSex() {
return sex;
}
public void setSex(boolean sex) {
this.sex = sex;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
@Override
public String toString() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd E a HH:mm:ss ");
return "学号:" + number + "\n姓名:" + name + "\n是否为男生:" + sex + "\n生日:"
+ sdf.format(birthday) + "\n身高:" + height;
}
}
分享到:
相关推荐
在Android中,我们可以使用`PackageManager`类的`getActivityInfo()`方法和`getApplicationInfo()`方法来获取`ActivityInfo`和`ApplicationInfo`对象,从而访问与之相关的元数据信息。这些方法都接受`PackageManager...
Java中的元数据Class类是一个基础的概念,它代理了这个类的类型信息、方法签名、属性等信息。每个类都有一个Class对象,它用来创建这个类的所有对象。每个对象的创建都依赖于Class对象的创建,而Class只有一个私有的...
Page ? * 学 习 目 标 ·理解元数据的概念,了解空间数据元数据所用到... 在这种情况下,空间数据的内容、质量、状况等元数据信息变得更加重要。 地理信息元数据标准和操作工具已经成为空间空间数据基础设施的一个重要
在Java编程中,元数据(Metadata)是指关于数据的数据,它提供有关文件、数据库记录、类、方法等的附加信息,但不直接构成这些实体的实际内容。元数据可以帮助理解和处理这些对象,例如,图片的元数据可能包含拍摄...
2. 类元数据获取:ReflectionX提供了一系列API,使得开发者能够方便地获取类的元数据,包括类的全名、父类、实现的接口、字段和方法。此外,它还可以获取到类的修饰符(如public、private等)、字段和方法的类型、...
为了应对这些特点,元数据被分为两类:单一型元数据和组合型元数据。单一型元数据是指那些独立存在的元数据字段,例如文章标题或作者姓名,它们通常可以用简单的HTML标签进行定位和提取。而组合型元数据涉及多个字段...
1. 元数据描述粒度细:以NSTL(国家科技图书文献中心)的开放资源描述元数据标准为例,它包含7类元素集,每个元素集下又细分出多个元数据字段,如题名、关键词、作者、机构信息等,比一般网络资源的元数据更为详尽。...
在地理信息数字产品中,元数据包括了数据的详细描述信息,有助于用户理解数据的用途、获取方式、内容范围等。 2. 元数据的标准:为了保证不同来源、不同类型的数据能够被有效兼容与交换,全球和国家层面都推出了元...
4. `<metametadata>` 元素:该元素包含了元数据的元数据信息,例如元数据的创建时间、最后修改时间等。 5. `<technical>` 元素:该元素包含了元数据的技术信息,例如数据的格式、大小等。 6. `<educational>` 元素:...
通过实际应用,该框架在多类开放获取资源上展现出良好的适应性和效果,有效地满足了元数据采集的需求。未来,可以进一步优化算法,提高自动化程度,以适应不断变化的开放获取环境。 6. 结论 开放获取资源元数据采集...
- **元数据内容**:详细规定了元数据实体集信息、标识信息、限制信息、数据质量信息、维护信息、参照系信息、内容信息、分发信息等内容。 - **元数据扩展**:提供了元数据扩展规则和要求,以适应不同场景的需求。 - ...
元数据是描述数据的数据,它提供关于数据资源的关键信息,包括但不限于数据的内容、来源、格式、质量、管理和获取方式等。在信息化领域,尤其是自然资源管理中,元数据扮演着至关重要的角色。元数据使得用户能够有效...
**WCF元数据浏览器**是Windows Communication Foundation(WCF)框架中的一个重要工具,它允许开发者探索和理解服务的元数据信息。WCF是.NET Framework的一部分,用于构建分布式应用程序,提供了丰富的服务模型,...
开放获取资源元数据采集系统是一种专门针对开放获取期刊的在线信息抽取工具,旨在解决由于网页结构多变和元数据描述复杂导致的传统信息抽取工具无法满足的需求。本系统通过细致的元数据采集,确保用户能够全面获取...
通过元数据,我们可以获取网站的资源类型、网页的标题、责任者、主题或关键词以及内容摘要等关键信息。这些信息使得搜索引擎能够更准确地定位和检索信息,提高了检索的准确率,从而更好地满足用户的检索需求。这一点...
本文提出了三种基于元数据的地理信息服务方式:元数据提供服务、元数据索引服务和元数据支撑服务。并详细论述了实现这些服务所涉及的关键技术,如AJAX、元数据与地理信息服务一体化、XML、XSL等。 地理信息服务的...
4. **ResolveInfo**: `ResolveInfo`是`PackageManager`返回的一个结果类,包含了关于解析到的组件(在这里是活动)的详细信息,如其元数据、权限等。 5. **ArrayList<AppModel>`**: `AppModel`是一个自定义类,用于...
自动方式通常通过自动编目系统完成,而手工方式则由人工填写元数据信息。 2. **目录服务中心**: - 对各部门提供的元数据进行形式审核,确保其符合核心元数据标准要求。 - 建立并管理核心元数据库,进行管理和...
元数据是指与接口相关的非数据信息,如参数类型、参数名、参数描述、返回值类型等。在Spring MVC中,可以通过反射和注解解析来获取这些元数据。例如,`@RequestParam`、`@PathVariable`、`@RequestBody`等注解提供了...
文章提出了卫生信息领域主要元数据的类型,包含了数据元、对象类、特性、数据元概念、表示、值域、术语和数据集等。每个类型都有其特定的作用和定义: 对象类:是现实世界中想法、抽象概念或事物的集合。它有明确的...