getter和setter怎么用_python setter

getter和setter怎么用_python setter有时候我们只知道一个对象的字段,我们想通过反射的方式将此字段赋值,可直接写反射又太浪费时间,还需要自己手动拼接方法名,而java为我们提供了一个很方便的类(PropertyDescriptor)来操作这一过程。使用很简单,直接看代码:代码importcom.pibgstar.demo.bean.User;importjava.beans.IntrospectionException…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

有时候我们只知道一个对象的字段,我们想通过反射的方式将此字段赋值,可直接写反射又太浪费时间,还需要自己手动拼接方法名,而java为我们提供了一个很方便的类(PropertyDescriptor)来操作这一过程。使用很简单,直接看代码:

代码

import com.pibgstar.demo.bean.User;
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/** * @author pibigstar * @create 2018-12-03 18:36 * @desc **/
public class TestPropertyDescriptor { 

public static void main(String[] args){ 

TestPropertyDescriptor test = new TestPropertyDescriptor();
User user = new User();
user.setId("123");
Object id = test.getAttribute("id", user);
System.out.println("id:"+id.toString());
test.setAttribute("name",user,"pibigstar");
System.out.println(user);
}
/** * @Author:pibigstar * @Description: 根据字段获取属性值 */
private Object getAttribute(String filed,Object obj) { 

try { 

PropertyDescriptor pd = new PropertyDescriptor(filed,obj.getClass());
// 获取getter方法
Method method = pd.getReadMethod();
Object result = method.invoke(obj);
return result;
} catch (IntrospectionException | IllegalAccessException | InvocationTargetException e) { 

e.printStackTrace();
}
return null;
}
/** * @Author:pibigstar * @Description: 设置属性字段值 */
private void setAttribute(String filed,Object obj,Object value) { 

try { 

PropertyDescriptor pd = new PropertyDescriptor(filed,obj.getClass());
// 获取setter方法
Method method = pd.getWriteMethod();
method.invoke(obj, value);
} catch (IntrospectionException | IllegalAccessException | InvocationTargetException e) { 

e.printStackTrace();
}
}
}

User对象也放一下吧

public class User { 

private String id;
private String name;
// setter/getter 方法
}

运行结果

id:123
User{id='123', name='pibigstar'}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/187273.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • django常见问题_网申项目报错可以改吗

    django常见问题_网申项目报错可以改吗报错情况Django使用makemigrations做数据迁移的时候报如下错误File"/Users/jkc/.virtualenvs/django_env/lib/python3.7

  • Android滑动解锁功能实现,Android_滑动解锁

    Android滑动解锁功能实现,Android_滑动解锁1.滑动解锁代码流程图:流程图图片资源:https://pan.baidu.com/s/1tkcw0tdxV78mnwHqOtcAGg提取码:2xsq2.代码:xml文件:xmlns:app=”http://schemas.android.com/apk/res-auto”xmlns:tools=”http://schemas.android.com/tools”android:layout_wi…

  • Java 手写签字去除背景 背景透明「建议收藏」

    Java 手写签字去除背景 背景透明「建议收藏」Java 手写签字去除背景 背景透明/** * 白底照片去除白底 形成透明底图片 * @param file 需要去除背景的图片 * @param Path 去除背景后保存图片的路径 * @return true 则去除成功 ,false 则失败 */public static boolean localImgToAlpha(File file, String Path) { try { BufferedImage bi = ImageIO.read(new F

  • 知识蒸馏(Knowledge Distillation)

    知识蒸馏(Knowledge Distillation)1、DistillingtheKnowledgeinaNeuralNetworkHinton的文章"DistillingtheKnowledgeinaNeuralNetwork"首次提出了知识蒸馏(暗知识提取)的概念,通过引入与教师网络(teachernetwork:复杂、但推理性能优越)相关的软目标(soft-target)作为totalloss的一部分,以诱导学…

  • MacBook —— 修改host文件「建议收藏」

    MacBook —— 修改host文件「建议收藏」文章目录MacBook——修改host文件MacBook——修改host文件打开Finder输入快捷键打开Finder输入快捷键Command+Shift+G,在弹出框中输入/etc/hosts:点击“前往”:打开hosts文件(用文本编辑即可)修改会出现没有权限的提示,我们点击“复制”然后修改完内容,将文件拷贝回这个地址,试图覆盖它,系统会出现下面的…

    2022年10月12日
  • maven web项目build失败

    maven web项目build失败

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号