相关疑难解决方法(0)

在接口中受保护

为什么interface定义中的所有方法都是隐含的public?为什么它不允许protected方法?

java interface

101
推荐指数
8
解决办法
4万
查看次数

方法界面中的可见性

接口中的所有方法都默认具有公共可见性模式吗?

java

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

如何弃用内部接口

我需要在Java SDK中弃用API以使它们更通用.但我无法弄清楚如何做以下情况:

public class AdoptDog {
    public interface OnDogAdoption {
        public void onDogAdoption(String dogName);
    }
    public void adoptDog(final String dogName, OnDogAdoption callbackObj) {
        // Perform asynchronous tasks...
            // Then call the callback:
            callbackObj.onDogAdoption(dogName);
    }
}
Run Code Online (Sandbox Code Playgroud)

SDK的用户进行如下调用:

AdoptDog adoptDog = new AdoptDog();
adoptDog.adoptDog("Snowball", new OnDogAdoption {
    @Override
    public void onDogAdoption(String dogName) {
        System.out.println("Welcome " + dogName);
    }
};
Run Code Online (Sandbox Code Playgroud)

我想概括从Dog到Pet,并弃用提到Dog的API.为了向后兼容,我在弃用API时不必更改上面采用Snowball的代码片段.

我是如何尝试弃用Dog API的:

// Introduce Pet API

public class AdoptPet {
    public interface OnPetAdoption {
        public void onPetAdoption(String petName);
    }
    public void adoptPet(final …
Run Code Online (Sandbox Code Playgroud)

java deprecated deprecation-warning

3
推荐指数
1
解决办法
95
查看次数

我怎样才能同时提供两个接口("公共"和"扩展"接口)?

我有块使用函数执行计算step().这些块可以相互连接connect(Block).

interface Block {
    void connect(Block b);
    void step();
}
Run Code Online (Sandbox Code Playgroud)

但是,从具体的块实现(例如step)中,应该可以read从连接的块中:

class ABlockImpl implements Block {
    private Block src; // link to the block this block is connected to
    public void connect(Block b) {
        src = b;
    }

    public void step() {
        double x = src.read(); // XXX src is of type Block and there is no read() in Block
        /* ... */
    }

    public double read() {
        return 3.14;
    }
} …
Run Code Online (Sandbox Code Playgroud)

java oop

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

标签 统计

java ×4

deprecated ×1

deprecation-warning ×1

interface ×1

oop ×1