我有一个对象将一些工作委派给另一个实现接口的对象。然后,我创建了实现这个接口的匿名类,我想从这些信息中获得信息。如何从匿名类中获取不同类型的数据
可以使用一个大小为1的最终数组作为指向primitve的数据与匿名类共享数据吗?
这里是我的意思工作的例子:
public class ExampleClass
{
public static final int INVALID_VALUE = -1;
public static void main(final String[] args)
{
final int[] buffer = { INVALID_VALUE }; // buffer is created
final InterfaceA iaObject = new InterfaceA()
{
@Override
public void doStuff(final String paramA)
{
buffer[0] = paramA.length(); // buffer is filled in anonymous class
}
};
final ClassA objA = new ClassA(iaObject);
objA.doStuff("hello, world");
if (buffer[0] == INVALID_VALUE) // buffer is used
{
System.err.println("Invalid length !");
}
else
{
System.err.println("The length is : " + Integer.toString(buffer[0]));
}
}
public static class ClassA
{
private final InterfaceA iaObject;
public ClassA(final InterfaceA iaObject)
{
this.iaObject = iaObject;
}
public void doStuff(final String paramA)
{
this.iaObject.doStuff(paramA);
}
}
public static interface InterfaceA
{
void doStuff(String paramA);
}
}
感谢
为什么不让doStuff返回int呢? –
您应该使用int而不是数组,因为您只使用一个位置 –
@ Zim-ZamO'Pootertoot doStuff不会返回int,因为我有时需要布尔值,String和其他类型的值。 – phil