我使用的是一个开源代码,其中一个API返回List<String>,而List是一个interface。我知道他们这样设计是为了让API更通用,但是我该如何使用呢?我只想得到结果。如果我尝试像这样的东西:
ArrayList<String> list = (ArrayList<String>) ...
我得到一个ArrayList cannot be cast to java.util.ArrayList错误。
下面是我的接口代码和三个类。我使用JUNIT测试,JUnit测试类也在下面。但是,我不知道从我的具体类中传递参数并在JUnit类中使用它。
接口
ArithmeticSkeleton.java
public interface ArithmeticSkeleton {
int operation(int a, int b);
}
混凝土类
Divide.java
public class Divide implements ArithmeticSkeleton{
@Override
public int operation(int a, int b) {
在../java/lang/Override.java中使用这个jdk代码,
package java.lang;
import java.lang.annotation.*;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}
只要有注释声明,java编译器就足以检测错误(编译时):
The method toString123() of type Example must override or implement a supertype method
嗨,任何帮助都会是这个问题的好助手,我知道为什么当我的客户打电话给webservice时我会犯这个错误?它是一个运行在JBoss上的cxf客户机。当我在客户端IPdfUtilitiesService_BasicHttpBindingIPdfUtilitiesService_Client上调用转换方法时,我得到的是SOAPFaultException:
javax.xml.ws.soap.SOAPFaultException: Cannot create an abstract class.
at org.apache.cxf.jaxws.JaxWsClientProxy
我的两个类也设计为创建一个StudentData对象数组(name、Date of Birth和ID),其中包含一个toString覆盖以打印出所有变量。然后序列化数组并将其保存到名为studentdata.txt的文件中。然后,它应该从文件中读取数组,并根据该数据重新构造一个新的数组对象,并将数组中的每一项打印到控制台。
我收到此错误时,试图遵守...
Exception in thread "main" java.io.NotSerializableException: Student
at java.io.ObjectOutputStream.writeObjec
Java不允许私有或受保护的方法,那么我们如何确保双向接口的实现者调用必要的方法呢?
假设我们有一个IModelListener接口,如下所示:
public interface IModelListener
{
public void handleChannelUpdate(int channel);
}
然后我们有一个ViewControl客户端,如下所示:
public class ViewControl implements IModelListener
只要我们记得让ViewControl调用它,ViewControl对象就会工作:
model.registerChan
我只能找到关于逆的东西;使用Clojure来实现Java接口。但是,我想用Clojure编写一个程序,并允许使用Java扩展它。例如:
# P.clj
(defprotocol P
(f [a])
(g [a b]))
# I.java
public class I implements P {
public Object f(Object a) { … }
public Object g(Object a, Object b) { … }
}
此外,我如何指定参数类型,以使我不必在任何地方使用Object?
我目前看到的唯一选项是使用点表示法和依赖鸭子类型,但我更喜
假设我有一个类似于
public class FooImpl
{
public void bar(){};
}
有办法在运行时创建它的接口吗?
例如:
public interface Foo
{
public void bar();
}
我一直在研究,事实是我对使用这个界面很感兴趣(正如Esko和Yishai所说)
因此,我希望有一个接口来指定原始类方法的子集,以便从中生成代理。
我开始意识到还有更多的事情需要关心
您应该重用该接口还是每次创建一个新的接口?
代理类实际上是java.lang.reflect.Proxy类型的一个新实例,这可能会根据用例而产生影响。