程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

方法“XXX”对于该类型不明确

发布于2024-11-02 20:57     阅读(714)     评论(0)     点赞(14)     收藏(3)


我的代码中出现此编译错误:

方法 add(UComponent comp, KopiAlignment Constraints); 对于 DBlock 类型而言是不明确的...

我想创建 UBlock 接口来对现有类 DBlock 进行抽象

代码如下:

UBlock 接口:

public interface UBlock extends UComponent, BlockListener {
   public void add(UComponent comp, KopiAlignment constraints);
}

DBlock 类:

public class DBlock extends JPanel implements  UBlock {
    public void add(UComponent comp, KopiAlignment constraints) {
    } 
}

我在另一个类中调用 add 方法:

private DBlock blockView;

blockView.add(displays[i], new KopiAlignment(chartPos + leftOffset, i + 1, 1, false));

当我从 DBlock 中删除 UBlock 的实现时,错误不再存在,这里是调用的方法:

/**
 * Adds the specified component to the end of this container.
 * Also notifies the layout manager to add the component to 
 * this container's layout using the specified constraints object.
 * This is a convenience method for {@link #addImpl}.
 * <p>
 * Note: If a component has been added to a container that
 * has been displayed, <code>validate</code> must be
 * called on that container to display the new component.
 * If multiple components are being added, you can improve
 * efficiency by calling <code>validate</code> only once,
 * after all the components have been added.
 *
 * @param     comp the component to be added
 * @param     constraints an object expressing 
 *                  layout contraints for this component
 * @exception NullPointerException if {@code comp} is {@code null}
 * @see #addImpl
 * @see #validate
 * @see javax.swing.JComponent#revalidate()
 * @see       LayoutManager
 * @since     JDK1.1
 */
public void add(Component comp, Object constraints) {
    addImpl(comp, constraints, -1);
}

那么我该如何解决这个问题?


解决方案


问题是你继承了另一个add方法。这意味着在你的DBlock类中你同时拥有

public void add(UComponent comp, KopiAlignment constraints)

public void add(Component comp, Object constraints)

供您使用。

现在KopiAlignment是 的子类型Object,我猜UComponent是 的子类型Component。这意味着当您add使用UComponentKopiAlignment作为参数调用时,参数类型适合这两种方法,尽管它们形式上具有不同的签名。

据我所知,没有真正的方法可以解决这个问题。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/691841/29523e8f0bce75e00266/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

14 0
收藏该文
已收藏

评论内容:(最多支持255个字符)