java 调用方法引起歧义:The method XXX is ambiguous for the type XX

The method XXX is ambiguous for the type XX

eclipse编译报错。

分析原因:方法歧义,是编译器无法确定,代码中使用哪一个方法。

1、调用的是自己编写的方法

public class Ambiguous {

public static void main(String[] args) {

Ambiguous ambiguous = new Ambiguous();

ambiguous.Para(null);

}

public void Para(String a) {

System.out.println("String类型a" + a);

}

public void Para(StringBuffer a) {

System.out.println("StringBuffer" + a.toString());

}

}

显然null作为参数,会导致编译器无法识别调用哪一个方法。

这种情况,有一种特例是,如果方法的参数有继承关系,那么编译器可以确定调用哪个方法,确定的原则是”我要的,你都有“。

2、调用库方法。

有些库静态方法很多静态字段很多,为了方便调用调用,常常这样写:

import static org.csdn.linghushaoxia.Demo.*;
<pre name="code" class="java">import static org.csdn.linghushaoxia.Demo1.*;

如果,碰巧在别的包里面,存在相同的方法,可就麻烦了,不容易查找。

比如,调用了Demo.init()静态方法,代码里直接就写init();

在Demo1里面有Demo1.init(),代码里再直接写init();必然引起歧义了。

在查出歧义之后,就好解决了,加上包就可以了。

这样子:

org.csdn.linghushaoxia.Demo.init();

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-18 09:46:54

java 调用方法引起歧义:The method XXX is ambiguous for the type XX的相关文章

dao 接口定义了一个方法,报错 The method xxx is undefined for the type xxx;

转自:https://blog.csdn.net/panshoujia/article/details/78203837 持久层(DAO层)下的一个接口 ,eclipse报了一个The method xxx  is undefined for the type xxxx,以为方法的参数类型有误,找来找去也没有发现参数或者参数类型错误,结果重新将整个project  clear一下,重新启动AliTomcat就可以. 原文地址:https://www.cnblogs.com/sharpest/p/

The method iterator() is ambiguous for the type KafkaStream

最近在学习消息总线Kafka的时候,在IDEA中写了一个简单的生产者和消费者demo.但是消费者端一直报错.错误信息如下: 1 ConsumerIterator<byte[],byte[]> it =stream.iterator(); 2 这句代码老是报错,The method iterator() is ambiguous for the type KafkaStream<byte[],byte[]> 后来博主在网上找了一些资料,解决方法记录一下: poom.xml文件如下:

Java调用方法参数究竟是传值还是传址?

之前阅读<Head First Java>的时候,记得里面有提到过,Java在调用方法,传递参数的时候,采用的是pass-by-copy的方法,传递一份内容的拷贝,即传值.举一个最简单的例子: 1 public class Test { 2 public static void main(String[] args) { 3 int numberA = 1; 4 int numberB = 2; 5 swap(numberA, numberB); 6 System.out.println(nu

JAVA工厂方法模式(Factory Method)

1.普通工厂模式 普通工厂模式:就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建. 1-1.建立Sender接口 public interface Sender { public void send();} 1-2 创建实现类实现Sender接口,比如文本与图像以及视频类 文本类 public class TextSender implements Sender { public void send() { System.out.println("this is Textsender!

Alex 的 Hadoop 菜鸟教程: 第8课 Hbase 的 java调用方法

声明 本文基于Centos 6.x + CDH 5.x 本例中 Hbase 是安装成集群模式的 本文基于Maven3.5+ 和 Eclipse 4.3 教程后的参考资料建议大家一定要看下 我们搭建hbase并不是要用shell来查数据的,我们是要写基于hbase的应用的,所以学习如何使用java来调用hbase是必修课. 环境搭建 建立项目 打开Eclipse 建立一个Maven项目,archetype选quickstart,项目的artifactId 和 groupId 随便起 修改一下pom

通过反射获取及调用方法(Method)

1.获取方法使用反射获取某一个类中的方法,步骤:①找到获取方法所在类的字节码对象②找到需要被获取的方法 Class类中常用方法: public Method[] getMethods():获取包括自身和继承过来的所有的public方法 public Method[] getDeclaredMethods():获取自身所有的方法(不包括继承的,和访问权限无关) public Method getMethod(String methodName,Class<?>...parameterTypes)

The method getTextContent() is undefined for the type Node

The method getTextContent() is undefined for the type Node eclipse 中 如果加入了 其他了xfire 等其他xml解析包的话,使用org.w3c.dom.Node下的getTextContent()方法会出现The method getTextContent() is undefined for the type Node 提示,解决方法如下: project-->properties->java build path-->

Java中通过method对象来调用方法

1 package reflectTest; 2 3 import java.lang.reflect.Method; 4 5 /** 6 * 通过获取类类型,进而获取Method对象,进而调用类的方法, 7 * 和直接通过类的对象来调用方法可以达到一样的效果,这里的示例调用了对象的三个方法 8 * @author Wang 9 * 10 */ 11 public class MethodDemo1 { 12 public static void main(String[] args) { 13

java中方法调用

JAVA中方法的调用[基础] 一.调用本类中的方法 方法一.被调用方法声明为static ,可以在其他方法中直接调用.示例代码如下: public class HelloWord { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String str="HelloWord!"; int a=0; int b=a+1; int result=