125java

反射与简单java类(单级VO操作原理)

一、反射与单级类操作

如果说现在有一个简单Java类,那么这个简单Java类中的属性按照原始的做法一定要通过setter才可以设置,取得肯定继续使用getter(不关注此处)。

二、范例:基本程序

typescript 复制代码
package cn.mldn.vo;

public class Emp {
    private String ename;
    private String job;
    
    // Getter and Setter methods
    public String getEname() {
        return ename;
    }
    
    public void setEname(String ename) {
        this.ename = ename;
    }
    
    public String getJob() {
        return job;
    }
    
    public void setJob(String job) {
        this.job = job;
    }
    
    @Override
    public String toString() {
        return "Emp{ename='" + ename + "', job='" + job + "'}";
    }
}

这样操作太麻烦,假设一个类中存在有几十个属性,那么要写几十次的setter方法。

如果想要它可以简化一下,例如,给你一个字符串,格式"属性名称:内容|...",能够按照这样的形式将内容全部设置到属性里面。

typescript 复制代码
package cn.mldn.action;

import cn.mldn.vo.Emp;

public class EmpAction {
    private Emp emp = new Emp(); // 修正对象创建语法

    public void setValue(String value) { // 增加参数以使用传入的字符串
        // 解析字符串并设置属性
        if (value != null) {
            String[] parts = value.split("\|");
            for (String part : parts) {
                String[] keyValue = part.trim().split(":");
                if (keyValue.length == 2) {
                    String key = keyValue[0].trim();
                    String val = keyValue[1].trim();
                    
                    if ("emp.ename".equals(key)) {
                        emp.setEname(val);
                    } else if ("emp.job".equals(key)) {
                        emp.setJob(val);
                    }
                }
            }
        }
    }

    public Emp getEmp() {
        return emp;
    }
}

反射操作VO

TestDemo

EmpAction

名称: -empo Emp ;

操作方法:+ setValue(): void ;

  • getEmp(): Emp ;

Emp

名称: -ename : String ;

-job: String;

操作方法:+ setEname():void

  • setJob(): void+

+getEname(): String

+getJob():String

具体流程如下图所示

通过本程序可以实现任意的简单Java类的属性设置。

相关推荐
纪莫8 分钟前
技术面:Java并发(线程同步、死锁、多线程编排)
java·java面试⑧股
衍余未了19 分钟前
k8s 内置的containerd配置阿里云个人镜像地址及认证
java·阿里云·kubernetes
叽哥25 分钟前
Kotlin学习第 4 课:Kotlin 函数:从基础定义到高阶应用
android·java·kotlin
渣哥28 分钟前
使用 HashMap 提高性能的小技巧
java
kyle~35 分钟前
排序---快速排序(Quick Sort)
java·开发语言
小蒜学长1 小时前
旅行社旅游管理系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·旅游
Kevinyu_1 小时前
RabbitMQ
java·rabbitmq·java-rabbitmq
TT哇1 小时前
【多线程案例】:单例模式
java·单例模式·面试