Tag: 扩展

对于java参数/返回类型,C ++相当于使用

在java中,要创建一个返回与参数类型相同的对象并扩展某个类的函数,我会输入: public T foo(T bar) {…} 有没有C ++相当于此? 换句话说,我如何创建一个函数,它接受任何扩展某个类的类,并返回相同的类型? (这是为了抽象/纯虚拟类的目的)。

实现vs在Java中的generics中扩展

有人能告诉我第一个和第二个代码之间的区别是什么吗? MaxPQ代表优先级队列,它是可以相互比较的“密钥”对象的集合。 代码1: public class MaxPQ<Key extends Comparable>{ … } 代码2: public class MaxPQ<Key implements Comparable>{ … } 第二个代码没有编译,但是对于我来说,为什么在使用generics时我们需要扩展而不是实现接口是不直观的。

圆形ArrayList(扩展ArrayList)

所以我的程序需要一种圆形ArrayList。 关于它的只有圆形的东西必须是get(int index)方法,这是原始的: /** * Returns the element at the specified position in this list. * * @param index index of the element to return * @return the element at the specified position in this list * @throws IndexOutOfBoundsException {@inheritDoc} */ public E get(int index) { rangeCheck(index); return elementData(index); } 如果index为-1,则应获取索引为ArrayList.size() – 1的元素,如果index为ArrayList.size(),则应获取索引为0的元素。 我想到的最简单的实现方法就是简单地从java.util包中扩展ArrayList,然后重写get(int index),这样它就不会为上面的两个索引抛出IndexOutOfBoundsException,而是将它们改为我想要的。 […]

是否可以在Java 8中扩展枚举?

只是玩,并想出一个甜蜜的方式来添加Java Enum toString()方法中的 enumfunction。 一些进一步的修补让我几乎也添加了一个整洁(即没有抛出exception)反向查找,但有一个问题。 据报道: error: valueOf(String) in X cannot implement valueOf(String) in HasValue public enum X implements PoliteEnum, ReverseLookup { overriding method is static 有办法吗? 这里的目的是静默添加(通过接口实现,使用default方法,如我在链接的答案中添加了politeName )一个lookup方法,该方法执行valueOf函数而不抛出exception。 可能吗? 显然现在可以扩展enum – 直到现在我的Java主要问题之一。 这是我失败的尝试: public interface HasName { public String name(); } public interface PoliteEnum extends HasName { default String politeName() { return name().replace(“_”, ” […]

扩展java ArrayList

我想扩展ArrayList,为特定类添加一些方法,其实例将由扩展ArrayList保存。 下面是简化的说明性代码示例。 这对我来说似乎很明智,但我对Java很新,我看到其他一些不鼓励扩展ArrayList的问题,例如Extending ArrayList和Creating new methods 。 我不太了解Java以了解异议。 在我之前的尝试中,我最终在ThingContainer中创建了一些基本上是传递给ArrayList的方法,因此扩展似乎更容易。 有没有更好的方法来做我想做的事情? 如果是这样,应该如何实施? import java.util.*; class Thing { public String name; public int amt; public Thing(String name, int amt) { this.name = name; this.amt = amt; } public String toString() { return String.format(“%s: %d”, name, amt); } public int getAmt() { return amt; } } class ThingContainer […]

为什么不能指定我扩展为?

以下陈述: URLClassLoader ucl = (URLClassLoader) ClassLoader.getSystemClassLoader(); Class uclc = ucl.getClass(); 失败并出错: Type mismatch: cannot convert from Class to Class 我为什么需要演员? 我发现了几个post,解释了为什么你不能反过来(将T分配给a),但那是(有点)明显和理解。 注意:我在eclipse Luna下编码,所以我不知道它是否是Luna Quirk,或者是否有一些我在仿制药中真的不了解的东西。

如何使用自己类型的成员扩展类?

假设我们需要使用一个名为“BaseNode”的类来实现不同类型的树,从中派生出其他类型的节点,并且它假设有一个名为其自身类型的parent实例变量,通常它看起来像: class BaseNode{ //…some fields BaseNode parent; //…other methods } 现在,如果我要为更多成员的AVL树派生Node: class AVLNode extends BaseNode{ //…other useful stuff } 原始parent (& left和right )节点成员仍将是BaseNode类型,这阻止我实现AVL树。 谁能告诉我如何解决这个inheritance问题? 谢谢!

Java中的implements和extends关键字有什么区别

Java中的以下关键字有什么区别: implements , extends ?

你能用Java扩展ArrayList吗?

是否可以创建一个扩展ArrayList的子类? 如果是这样,怎么样?

为什么generics类型不适用于参数扩展超类?

这是我一直试图找到解决方案的问题。 我们有两个类定义。 其中一个扩展另一个。 class T{} class TT extends T{} 要求是应该有一个列表保持对象扩展T List list = new ArrayList(); 但是当我尝试将TT对象(几乎不是它的子类)放入列表时,问题就出现了。 list.add(new TT()); 编译错误消息 类型List中的方法add(捕获#2-of?extends Cell)不适用于参数(Cell)