Java 如何将接口对象传递给方法
我有一个主类,如下所示。我想将接口对象从Main方法传递到另一个方法。我通过了考试,如下面我的主要课程所示。但我得到了错误“预期”。谁能帮帮我吗 这是我的主要课程:Java 如何将接口对象传递给方法,java,Java,我有一个主类,如下所示。我想将接口对象从Main方法传递到另一个方法。我通过了考试,如下面我的主要课程所示。但我得到了错误“预期”。谁能帮帮我吗 这是我的主要课程: package com.armus.web.server; import com.armus.common.dtflow.DfService; public class TriggerAgain { public static void main(String[] args){ Long i= 9794460
package com.armus.web.server;
import com.armus.common.dtflow.DfService;
public class TriggerAgain
{
public static void main(String[] args){
Long i= 97944605L;
DMSerImpl rdf = new DMSerImpl();
try {
/*********** Section start....Getting Problem In this section...How Can I Pass interface object to a method setDfService*********/
@Override
rdf.setDfService(new DfService()
{
Dfsessn dfsessn=getDfsessnById(i)
{
System.out.println("In main class...In interface method="+i);
}
})
/*************************************************Section End*******************************************************************/
com.armus.dto.Jinfo a=rdf.Trigger(i);
}
catch( Throwable e){
System.out.println("In exception = "+e+" "+i);
e.printStackTrace();
return; // Always must return something
}
}
}
这是我的另一个类,我想将接口对象传递给“setDfService”方法
以下是我的界面:
package com.armus.common.dtflow;
import com.armus.common.dto.Dfsessn;
import com.armus.common.exception.ServerException;
public abstract interface DfService
{
public abstract Dfsessn getDfsessnById(Long paramLong)
throws ServerException;
}
提前谢谢!!!:) 这是一个创建匿名类实例的示例
rdf.setDfService(new DfService() {
@Override
public Dfsessn getDfsessnById(Long paramLong) {
....
}});
上面您试图做的是创建一个实现DfService
接口的匿名类实例,但您做得不正确(语法方面)
在这里阅读匿名内部类
另外,DfService
是一个功能接口(单一方法接口),因此您也可以在这里使用lamda。像这样的
rdf.setDfService(paramLong -> System.out.println("In main class...In interface method="+i));
有关更多信息,请查看此信息,您是:
@覆盖
放在错误的位置李>
rdf.setDfService(new DfService()
{
@Override
public Dfsessn getDfsessnById(Long i)
{
System.out.println("In main class...In interface method="+i);
}
});
错误消息标识了哪一行?通过“接口对象”,我假定您的意思是“匿名类的实例”。创建该实例时,需要指定要覆盖的方法。我建议您联机查找匿名类的使用示例,看看它们是如何工作的,因为您的尝试与要求相差甚远。不确定…我是java新手…我做得对吗?您在
setDfService()的末尾缺少一个分号。
。投票以打字错误结束。
rdf.setDfService(paramLong -> System.out.println("In main class...In interface method="+i));
rdf.setDfService(new DfService()
{
@Override
public Dfsessn getDfsessnById(Long i)
{
System.out.println("In main class...In interface method="+i);
}
});