相关疑难解决方法(0)

使用相同的方法在类中实现两个接口.覆盖哪种接口方法?

两个具有相同方法名称和签名的接口.但是由单个类实现,那么编译器将如何识别哪个接口的方法是什么?

例如:

interface A{
  int f();
}

interface B{
  int f();
}

class Test implements A, B{   
  public static void main(String... args) throws Exception{   

  }

  @Override
  public int f() {  // from which interface A or B
    return 0;
  }
}   
Run Code Online (Sandbox Code Playgroud)

java overriding interface

223
推荐指数
6
解决办法
14万
查看次数

为什么明确实现接口?

那么,明确实现接口的一个好用例究竟是什么?

是否仅仅是因为使用该类的人不必在intellisense中查看所有这些方法/属性?

c# interface

118
推荐指数
8
解决办法
3万
查看次数

Java - 接口实现中的方法名称冲突

如果我有两个接口,两者的用途完全不同,但是使用相同的方法签名,我如何在不强制编写一个为两个接口服务的单个方法并在方法中编写一些复杂逻辑的情况下创建一个类.检查正在进行调用的对象类型并调用正确代码的实现?

在C#中,这被称为显式接口实现所克服.Java中有没有相同的方法?

java interface multiple-inheritance composition

87
推荐指数
3
解决办法
4万
查看次数

有没有办法在运行时获取类的字节码?

在Java中,是否有一种方法(在运行时)获取定义特定类的字节码?

换句话说,有没有办法获取在加载特定类时byte[]传递给的数组ClassLoader.defineClass(String name, byte[] b, int off, int len)?我看到声明了这个方法final,因此创建一个ClassLoader拦截类定义的自定义似乎是不可能的.

在过去,我已经使用类ClassLoader来通过该getResourceAsStream(String)方法获取字节码,但我更喜欢更规范的解决方案.

java bytecode runtime

16
推荐指数
2
解决办法
4686
查看次数

Java重写两个接口,方法名称的冲突

我实现Map<V,K>Collection<V>接口在一类,但remove(Object)发生法两种接口,therfore日食表明了我的一些错误.返回类型是不同的,一个返回boolean,另一个V但这似乎并不重要.

有没有办法告诉java/eclipse哪个方法实际被覆盖?

编辑:我有一个所有值必须实现的接口,它使用getKey()方法提供值,从而可以为地图编写添加函数.但似乎没有办法让这一个类同时看作地图和集合?

java collections overriding map implements

7
推荐指数
1
解决办法
1841
查看次数

三合会没有出现在战斗中?(Java Set缺少一个项目)

我有来自两家公司asoft和bsoft的代码.我也无法改变.这是我的情况的简化版本,我非常确定有足够的信息来查找导致问题的原因.

bsoft提供IGang,代表一个可以与其他帮派作战的团伙.

package bsoft;

public interface IGang {
    /** @return negative, 0, or positive, respectively
     *          if this gang is weaker than, equal to, or stronger
     *          than the other
     */
    public int compareTo(IGang g);
    public int getStrength();
    public String getName();
    public void attack(IGang g);
    public void weaken(int amount);
}
Run Code Online (Sandbox Code Playgroud)

asoft提供GangWar,允许IGangs战斗:

package asoft;
import java.util.*;
import bsoft.*;
/** An `IGang` ordered by identity (name) */
public interface ComparableGang extends IGang, Comparable<IGang> {}

package asoft; …
Run Code Online (Sandbox Code Playgroud)

java interface set diamond-problem

2
推荐指数
1
解决办法
417
查看次数