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());}}
}