JDK中是否有标准的功能接口,什么都不带,什么都不返回?我找不到一个.类似于以下内容:
@FunctionalInterface
interface Action {
void execute();
}
Run Code Online (Sandbox Code Playgroud) 为接口编写junit测试的最佳方法是什么,以便它们可用于具体的实现类?
例如,你有这个接口和实现类:
public interface MyInterface {
/** Return the given value. */
public boolean myMethod(boolean retVal);
}
public class MyClass1 implements MyInterface {
public boolean myMethod(boolean retVal) {
return retVal;
}
}
public class MyClass2 implements MyInterface {
public boolean myMethod(boolean retVal) {
return retVal;
}
}
Run Code Online (Sandbox Code Playgroud)
您如何针对界面编写测试,以便将其用于课程?
可能性1:
public abstract class MyInterfaceTest {
public abstract MyInterface createInstance();
@Test
public final void testMyMethod_True() {
MyInterface instance = createInstance();
assertTrue(instance.myMethod(true));
}
@Test
public final void testMyMethod_False() {
MyInterface instance = createInstance(); …Run Code Online (Sandbox Code Playgroud) 将接口声明为抽象是什么意思?接口方法也是如此.有没有意义呢?
例如.
public abstract interface Presenter {
public abstract void go(final HasWidgets container);
}
Run Code Online (Sandbox Code Playgroud) 我正在学习设计模式,本书的第一个例子是关于抽象工厂.我在VS中建立了这个练习并且看起来都很好,但是有一个我想知道的问题.
在本书中,工厂类是这样实现的:
public abstract class AbstractVehicleFactory
{
public abstract IBody CreateBody();
public abstract IChassis CreateChassis();
public abstract IGlassware CreateGlassware();
}
Run Code Online (Sandbox Code Playgroud)
完成练习后,我注意到上面的类可以用以下代码替换:
public interface IAbstractVehicleFactory
{
IBody CreateBody();
IChassis CreateChassis();
IGlassware CreateGlassware();
}
Run Code Online (Sandbox Code Playgroud)
当然这两个例子的功能完全相同,但我想知道使用抽象类而不是接口的原因是什么?
可能重复:
Java抽象接口
public interface Foo {
abstract public void bar();
}
Run Code Online (Sandbox Code Playgroud)
我想我们不需要abstract在上面宣布和公开一样interface.编译器会捕获这个是警告还是编译器允许的.
如您所知,在java接口中,所有方法都必须定义为抽象.但是当我将方法定义为不键入时abstract,编译器说它没关系.我知道抽象方法不能有一个体.接口中的某个方法是否必须具有名称abstract?:我的意思是,有什么区别:
public interface blabla {
public void aMethod();
//or
public abstract void aMethod();
}
Run Code Online (Sandbox Code Playgroud) 我遇到了一些Java代码:
public class LocationProvider {
public interface LocationCallback {
public void handleNewLocation(Location location);
}
// class constructor
public LocationProvider(Context context, LocationCallback callback){
...
}
}
Run Code Online (Sandbox Code Playgroud)
在Java中,我第一次遇到一个带有"type"参数的构造函数或方法,它是一个接口.是否可以创建接口对象?你可以像常规物品一样使用它们吗?
在C++中,我知道创建抽象类的对象是不可能的.