有以下示例:

public class Test {

public static class A {}

public static void main(String[] args) {

A a = new A();

m1(a);

}

public static void m1(T t) {

// t.getClass().getSimpleName() is A

// t instanceof A is true

m2(t);

}

/* Not called */

public static void m2(A a) {

System.out.println("A");

}

public static void m2(Object o) {

// o.getClass().getSimpleName() is A

// o instanceof A is true

System.out.println("O");

}

}

我不明白为什么选择m2(对象o)而不是m2(A a).如您所见,当调用m2(t)时,t“是A”.

输出:

>实际

O

>预期

A

如何在上面的情况下使用泛型,以便选择m2(A a)?

编辑:

即使我添加了类型B(类似于A),我也希望有一个通用的解决方案.

...

public static void main(String[] args) {

A a = new A();

m1(a);

B b = new B();

m1(b);

}

...

public static void m2(B b) {

System.out.println("B");

}

...

输出:

>实际

O

O

>预期

A

B

java 泛型调用方法调用_java – 如何使用泛型调用最具体的方法?相关推荐

  1. java ocr文字识别软件_Java文字识别软件-调用百度ocr实现文字识别

    java_baidu_ocr Java调用百度OCR文字识别API实现图片文字识别软件 这是一款小巧方便,强大的文字识别软件,由Java编写,配上了窗口界面 调用了百度ocr文字识别API 识别精度高 ...

  2. java同时执行同一个方法吗_java 返回结果的同时执行另一个方法

    照 JPer 的指点,改写了代码 如下,旨在说明 " 如果调用方法 a() 的过程还没有结束,JAVA虚拟机 JVM绝不会去解释并执行下一行,即绝不会去创建JSONObject 对象 jso ...

  3. java 反射创建对象并赋值_java使用反射创建并操作对象的方法

    Class 对象可以获得该类里的方法(由 Method 对象表示).构造器(由 Constructor 对象表示).成员变量(由 Field 对象表示),这三个类都位于 java.lang.refle ...

  4. java 获取类的注解_Java 自定义注解通过反射获取类、方法、属性上的注解

    反射 JAVA中的反射是运行中的程序检查自己和软件运行环境的能力,它可以根据它发现的进行改变.通俗的讲就是反射可以在运行时根据指定的类名获得类的信息. 注解的定义 注解通过 @interface 关键 ...

  5. java比较两个对象_java判断两个对象是否相等的方法

    java判断两个对象是否相等的方法 发布时间:2020-06-25 13:48:38 来源:亿速云 阅读:197 作者:Leah 这期内容当中小编将会给大家带来有关java判断两个对象是否相等的方法, ...

  6. java 如何跳出if语句_java中跳出或终止if语句的方法

    1.break break:跳出当前循环:但是如果是嵌套循环,则只能跳出当前的这一层循环,只有逐层break才能跳出所有循环.for (int i = 0; i < 10; i++) { if ...

  7. java定时执行一次_java Timer(定时调用、实现固定时间执行)

    最近需要用到定时调用的功能.可以通过java的Timer类来进行定时调用,下面是有关Timer的一些相关知识. 其实就Timer来讲就是一个调度器,而TimerTask呢只是一个实现了run方法的一个 ...

  8. java如何调用linux命令_java程序中如何调用linux命令

    java程序中如何调用linux命令 作为一个Java开发人员,有些常用的Linux命令必须掌握.即时平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令.因为很多服 ...

  9. java同步转化成异步_Java 如何把异步调用模拟成同步调用

    在某些时候,须要把异步调用模拟成同步调用的形态.例如,基于基于异步通讯的客户端须要同步调用. :-)异步 要实现这个转换,能够有多种实现方法:this 1.很经常使用的方法,应用循环机制:spa bo ...

  10. java 静态调用非静态方法_java中静态方法中调用非静态方法的详解

    首先static的成员是在类加载的时候初始化的,JVM的CLASSLOADER的加载,首次主动使用加载,而非static的成员是在建立对象的时候,即new 操做的时候才初始化的:函数 前后顺序是先加载 ...

最新文章

  1. 基础补充:使用xlrd模块读取excel文件
  2. java 开票金额拆分_关于开票尾差拆分凑整的算法问题
  3. python dlib学习(十一):眨眼检测
  4. Netty 源码走读
  5. 进行SEPM的灾难恢复时导入数据库后,Symantec Endpoint Protection Manager(SEPM)无法登陆...
  6. 2016ICPC沈阳站
  7. 2019 java值得学吗_Java认证值得吗?
  8. 信息系统项目管理师论文优秀范文_软考 信息系统项目管理师备考指南
  9. VC 2008 Express 编译OpenCV2.0/2.1
  10. 重庆市南川隆化职业学校计算机,重庆市第十三届中等职业学校职业技能大赛“web前端开发”赛项在南川隆化职中举行...
  11. 那些年出现的遇到的 错误 VS (长期)
  12. VB代码颜色修改(修改注册表的方法)
  13. R语言中经纬度度分秒转小数
  14. springboot+责任链模式初体验
  15. md4 java_求MD4 java实现的代码
  16. 人不行别怪路不平!万丈高楼平地起,要想辉煌靠自己。
  17. 第四届高教杯计算机绘图教程,第三届“高教杯”机械类计算机绘图试卷(三维).pdf...
  18. 计算机专业Java毕设怎么做
  19. Linux如何测试驱动性能,掌握 Linux PC 性能之基准测试
  20. [ArcGIS] 空间分析(五) 网络分析

热门文章

  1. UDO report generate DDIC table
  2. SAP CRM BCSet activation debug
  3. why context node binding does not work in pop up window case
  4. SAP Gigya里类似Netweaver里SAP_ALL的权限
  5. 变频器lpm故障码是什么_什么是变频器软故障,如何解决?
  6. 画箱线图_箱线图的N种画法
  7. linux26内核,Linux26内核对象机制研究.pdf
  8. python中forward函数的引用_pytorch 调用forward 的具体流程
  9. JAVA复习(二维数组——快排——迷宫)
  10. abb软启动器pstx手册_关于 ABB工业机器人碰撞检测功能的介绍