如果一个方法传入不同类型的参数,都可以获取到其id属性

TeRiRi 2021-03-05 05:07:00
假设有三个类classA,classB,classC,三个类中都有一个id属性,有一个方法需要传入A,B,C其中任意一个,都要获取其id

public void test(T t){
t.getId();
}

大概需要实现一个这样功能的代码,求教如何
...全文
243 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
public class Test { public static void main(String[] args) { int id1 = test(new ClassA(1)); int id2 = test(new ClassB(2)); int id3 = test(new ClassC(3)); System.out.println(id1); System.out.println(id2); System.out.println(id3); } public static <T extends ClassD> int test(T t){ int id = t.getId(); return id; } } abstract class ClassD<T>{ private int id; public ClassD(int id) { this.id = id; } public int getId() { return id; } } class ClassA<T> extends ClassD{ public ClassA(int id) { super(id); } } class ClassB<T> extends ClassD{ public ClassB(int id) { super(id); } } class ClassC<T> extends ClassD{ public ClassC(int id) { super(id); } } 你的需求没看太明白,希望上面的代码能帮助你。
乔不思 2021-03-08
  • 打赏
  • 举报
回复
抽一个ABC的 父类或者接口 D,然后D有id属性,有getId方法,子类继承或者实现
韩_师兄 2021-03-08
  • 打赏
  • 举报
回复
泛型吧,传入那个对象,就调那个对象的方法
TeRiRi 2021-03-08
  • 打赏
  • 举报
回复
是3l的写法,感谢
编号灬9527 2021-03-05
  • 打赏
  • 举报
回复
要么抽取成公共类或者接口!要么就用反射!
立青_ 2021-03-05
  • 打赏
  • 举报
回复 1
interface id{
        String getId();
    }

    public <T extends id> void test(T t){
        t.getId();
    }
立青_ 2021-03-05
  • 打赏
  • 举报
回复
父类或者接口
TeRiRi 2021-03-05
  • 打赏
  • 举报
回复
就是大概一个泛型入参怎么调用getId()
lin351550660 2021-03-05
  • 打赏
  • 举报
回复
不知道题主想表达什么

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧