当前位置: 首页 > news >正文

Java1111 实现一个方法,获取属性值 返回name

入参

public class RuCan {public static int add(int a,int b){return a+b;}public static void greet(String name,String message){System.out.println(message+","+name+"!");}
}
public class Main {public static void main(String[] args) {//写一个方法,入参是传量一个对象,出参是返回一个结果//入参是Object 出参是String 方法名是getObjectNAME
//那么这里入参是Object getObjectName(Object);int result=RuCan.add(5,3);//调用方法传入的实际值 这里是 5 3RuCan.greet("ds","sad");//这里是ds sad}}

方法入参 出参

public class Calculator {// 两个int类型入参,返回int类型出参public int add(int a, int b) {return a + b;}// 三个double类型入参,返回double类型出参public double calculateAverage(double num1, double num2, double num3) {return (num1 + num2 + num3) / 3.0;}// 布尔类型入参public String getStatus(boolean isActive) {return isActive ? "激活" : "未激活";}
}

在这里插入图片描述
在这里插入图片描述

题目

public String getObjectNameField (Object obj) throws ClassNotFoundException {if(obj==null){return null;}try{//为什么这里不用定义Class <?> studentclass=Class.forName("Student");Field field=obj.getClass().getDeclaredField("name");field.setAccessible(true);//为啥要setAccessible 又不修改值Object nameValue=field.get(obj);return nameValue!=null?nameValue.toString():null;} catch (NoSuchFieldException | IllegalAccessException e) {return null;}

在这里插入图片描述

// 不需要这样写 - 硬编码,不灵活
Class<?> studentclass = Class.forName("Student");// 应该使用这种方式 - 动态获取实际类
Field field = obj.getClass().getDeclaredField("name");

在这里插入图片描述

import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;public class ObjectToStringConverter {// 写一个方法,入参是传量一个对象,出参是返回一个结果//入参是Object 出参是String 方法名是getObjectNAME//再说:student类 Classes类 School类 属性随便定义 共有一个name属性 写一个方法 入参不限制 返回name 返回值:name属性public String objectToString(Object obj) throws ClassNotFoundException, NoSuchFieldException, NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {if (obj == null) {return "null";}return obj.toString();//使用泛型}public String getObjectNameField (Object obj) throws ClassNotFoundException {if(obj==null){return null;}try{//为什么这里不用定义Class <?> studentclass=Class.forName("Student");Field field=obj.getClass().getDeclaredField("name");field.setAccessible(true);//为啥要setAccessible 又不修改值Object nameValue=field.getType();return nameValue!=null?nameValue.toString():null;} catch (NoSuchFieldException e) {return null;}
//            Class<?> studentclass = Class.forName("Student");
//            //2.获取属性,公有
//            Field[] field = studentclass.getFields();
//            //怎么会报错,必须指定
//            //修正 getFields
//            //3.获取特定字段的属性
//            //为什么每次都要Field act=studentclass. 是因为存储不同的东西吗?
//            Field actressfield = studentclass.getField("actress");
//            System.out.println(actressfield.getName());
//            System.out.println("类型:" + actressfield.getType().getSimpleName());
//            //4.设置字段值
//            Object studentInstance = studentclass.getConstructor().newInstance();
//            Object value1 = studentclass.getDeclaredField("fee");
//            System.out.println(value1);}}
import java.lang.reflect.InvocationTargetException;public class Test {public static void main(String[] args) {ObjectToStringConverter converter = new ObjectToStringConverter();Student student = new Student("ZHANG", 20);School school = new School("89");Game game = new Game("lOL");System.out.println("Test objectToString方法");try {String studentStr = converter.objectToString(student);String schoolStr = converter.objectToString(school);String gameStr = converter.objectToString(game);String nullStr = converter.objectToString(null);System.out.println();} catch (NoSuchFieldException e) {throw new RuntimeException(e);} catch (ClassNotFoundException e) {throw new RuntimeException(e);} catch (InvocationTargetException e) {throw new RuntimeException(e);} catch (NoSuchMethodException e) {throw new RuntimeException(e);} catch (InstantiationException e) {throw new RuntimeException(e);} catch (IllegalAccessException e) {throw new RuntimeException(e);}try {String studentName = converter.getObjectNameField(student);String schoolName = converter.getObjectNameField(school);String gameName = converter.getObjectNameField(game);String nullName = converter.getObjectNameField(null);System.out.println("STUDEN‘s name=" + studentName);System.out.println("SCHOOL'S name=" + schoolName);System.out.println("GAME'S name=" + gameName);System.out.println("NULL'S name=" + nullName);} catch (ClassNotFoundException e) {throw new RuntimeException(e);}try {Object obj = new Object();String result = converter.getObjectNameField(obj);System.out.println("Object的name:" + result);} catch (Exception e) {System.out.println("错误:" + e.getMessage());}}
}
http://www.dtcms.com/a/597221.html

相关文章:

  • 存储核心:EXT文件系统
  • 品牌型网站的特点站长工具seo查询5g5g
  • 量子信息中的QASM
  • 阿里巴巴做网站费用网站功能价格表
  • MongoDB 删除数据库
  • android studio 在终端指定 jdk 1.8 打包 release~ MacOS版
  • 【STM32】HDC2080温湿度计驱动
  • Highcharts 在 AMD 与 CommonJS 环境下的安装与配置指南
  • 阿里云编辑建设好的网站济南网络优化厂家
  • 如何给 MacOS 更新到指定版本系统
  • jEasyUI 合并单元格详解
  • AJAX学习 ---- axios体验
  • 电子商务网站开发基本流程建立链接
  • MySQL第五次作业(触发器,存储过程)
  • HORIBA MEXA-324M:双组分汽车尾气测量仪技术说明
  • C++进阶:(八)基于红黑树泛型封装实现 map 与 set 容器
  • 网站制作资质wordpress用户名密码注册
  • Redis(1)
  • 《中医基础理论》- 2.哲学基础之藏象学说-心系统详解
  • 智慧养老如何托起“有温度的银发未来”?
  • 做网站编程在程序网站被别人做镜像
  • win2008 r2内存爆满导致前端程序崩溃
  • 【OpenCV + VS】 OpenCV图像色彩空间转换: 从BGR到HSV和灰度
  • 郓城住房和城乡建设局网站淘宝关键词优化怎么弄
  • 简约 时尚 高端 网站建设表白二维码制作网站
  • Uniapp运行MuMu模拟器
  • uniapp uniim ios配置消息推送
  • 如何监测 Vue + GeoScene 项目中浏览器内存变化并优化性能
  • 使用Rancher快速部署K8S集群
  • 建立网站英文翻译数字营销沙盘大赛攻略