【发射】java如何写一个方法,你传什么对象过来,我返回你一个什么对象

我是这个意思,现在有个功能,写一个方法,但是不确定用户会传什么对象过来,有可能是用户自定义的对象。

我现在是想用户传一个对象过来,比如用户传了People对象,那我的方法返回值就给他返回一个我修改过的People对象回去。

怎么写这个方法?求demo

将返回值类型设为泛型

return people;

java对象本身就是传递的引用,经过一个方法,修改了内部属性值,外层是可以看到的。不用返回,当然要返回也行,执行返回值就行了。

Person a = new Person();
test(a);

public void test(Person a){ //这里可能不知道对象类型,就不知道如果调用它的方法了。 可以加判断是否是某个类的类型instanceof在强制转换下
a.setName="xxxx";
}

定义接口时把参数设成泛型或者Object类型,之后可以使用反射类查看field和声明的方法,做你想做的修改再返回

对象的类型个数要预先确定,你的方法用instanceof来检测用户传过来的是什么类型的对象,然后再对其处理。

Object convert(Object obj){
if( obj instance of A){

}else if(obj instance of B){

}else if(.....){
}
return obj;

}

直接在方法名里使用Object基类进行定义,所有的类都是继承自Object,都可以多态实现

直接传Object,Object是所有类的父类

传入一个Object参数,返回类型也是Object。方法内容就是反射得到方法或者属性来进行操作,具体什么操作不管,这个要看你怎么设定了,任意传我不觉得有任何意义

import java.lang.reflect.Field;

public class returnObject {

public Object returnaobejct(Object object) throws Exception{
    Field field=object.getClass().getField("name"); //传进来对象有name属性
    field.set(object, "老王");//修改name值
    return object;
}

}

接参数可以用泛型,返回类型也可以是泛型,这样就是什么类型都可以接,什么类型都可以返回了

不确定是什么对象 可以用object接收一下 然后通过obj instance of B判断 前提是需要明确可能传过来的对象可能有几种

如果对象的种类都不一定是啥 那~~~~你怎么确定修改什么字段呢 就没有意义了

泛型可以实现,反射也可以实现。